不同的主要入口点 [英] Different Main Entry Points

查看:86
本文介绍了不同的主要入口点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我将此项目添加到顶部,所有错误都会消失,但是.exe实际上不会执行任何操作.

If I add this top my project all errors go away, but the .exe doesn't actually do anything.

[STAThread]
静态void Main()
{
}

[STAThread]
static void Main()
{
}


如果我取出来并使用它:

If I take that out and use this:

private void Main(string [] args)
{
DateTime dt = DateTime.Today.AddDays(-1);
字符串日期= String.Format(" {0:yyyyMMdd},dt);
getFTPFile("raw_CA _" +日期+".txt");
getFTPFile("raw_EM _" +日期+".txt");
getFTPFile("raw_GLB _" +日期+".txt");
getFTPFile("raw_US _" +日期+".txt");
}

private void Main(string[] args)
{
DateTime dt = DateTime.Today.AddDays(-1);
string date = String.Format("{0:yyyyMMdd}", dt);
getFTPFile("raw_CA_" + date + ".txt");
getFTPFile("raw_EM_" + date + ".txt");
getFTPFile("raw_GLB_" + date + ".txt");
getFTPFile("raw_US_" + date + ".txt");
}


然后我收到以下错误消息.

Then I get the following error.

ConsoleApplication1.exe"不包含适用于入口点的静态"Main"方法.   ConsoleApplication1

ConsoleApplication1.exe' does not contain a static 'Main' method suitable for an entry point    ConsoleApplication1

最后,如果我将其设置为静态,就像这样.

Finally, if I make it static, like this.

static void Main(string [] args)
{
DateTime dt = DateTime.Today.AddDays(-1);
字符串日期= String.Format("{{:yyyyMMdd}",dt);
getFTPFile("raw_CA _" +日期+".txt");
getFTPFile("raw_EM _" +日期+".txt");
getFTPFile("raw_GLB _" +日期+".txt");
getFTPFile("raw_US _" +日期+".txt");
}

static void Main(string[] args)
{
DateTime dt = DateTime.Today.AddDays(-1);
string date = String.Format("{0:yyyyMMdd}", dt);
getFTPFile("raw_CA_" + date + ".txt");
getFTPFile("raw_EM_" + date + ".txt");
getFTPFile("raw_GLB_" + date + ".txt");
getFTPFile("raw_US_" + date + ".txt");
}

非静态字段,方法或属性'ConsoleApplication1.Program.getFTPFile(string)'需要对象引用

An object reference is required for the non-static field, method, or property 'ConsoleApplication1.Program.getFTPFile(string)'

最后,我想到了这个.

public static void Main(string [] args)
{
DateTime dt = DateTime.Today.AddDays(-1);
字符串日期= String.Format(" {0:yyyyMMdd},dt);
程序p = new Program();
p.getFTPFile("raw_CA_" +日期+".txt");
p.getFTPFile("raw_EM _" +日期+".txt");
p.getFTPFile("raw_GLB _" +日期+".txt");
p.getFTPFile("raw_US_" +日期+".txt");
}

public static void Main(string[] args)
{
DateTime dt = DateTime.Today.AddDays(-1);
string date = String.Format("{0:yyyyMMdd}", dt);
Program p = new Program();
p.getFTPFile("raw_CA_" + date + ".txt");
p.getFTPFile("raw_EM_" + date + ".txt");
p.getFTPFile("raw_GLB_" + date + ".txt");
p.getFTPFile("raw_US_" + date + ".txt");
}

现在,所有编译错误都消失了,但是出现了运行时错误.有人可以在这里解释我在做什么错吗?

Now, all compile errors are gone, but there is a run-time error.  Can someone please explain what I'm doing wrong here?

知识是我唯一可以给您的东西,并且仍然保留下来,我们俩对此都比较满意.

Knowledge is the only thing that I can give you, and still retain, and we are both better off for it.

推荐答案

您的 getFTPFile函数应为静态,也可以选择两个入口点",一个带有参数,一个不带参数, 您可以简单地使用params关键字,以便对Main()的任何调用都可以省略参数.

Your getFTPFile function should be static, also if you would like "two entry points", one with parameters and one without, you can simply use the params keyword so that any calls to Main() can ommit the arguments.

示例:

static void Main(params string[] args)
{
    if (args.Any())
    {
        // Do code that references args
    }
    else
    {
        // Do code that depends on no input arguments.
    }
}



这篇关于不同的主要入口点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆