是否必须在C#中编写static void Main(string [] args)?

时间:2016-01-16 06:19:26

标签: c#

因为我只调试了一个非常简单的程序,它将运行时输入作为两个数字并显示了这两个数字的总和。我没有写字符串[] args就这样做了。那么在每个程序中写这些都是非常必要的吗?

4 个答案:

答案 0 :(得分:2)

不,这不是强制性的。

Main() and Command-Line Arguments (C# Programming Guide)上的文档清楚地说:

  

可以使用 声明Main方法,而 包含命令行参数的string []参数。

所以,这也是一个有效的切入点:

static void Main()
{
    Console.WriteLine("Hello world");
}

答案 1 :(得分:1)

Main方法是C#控制台应用程序或Windows应用程序的入口点。 (库和服务不需要Main方法作为入口点。)。启动应用程序时,Main方法是第一个被调用的方法。 C#程序中只能有一个入口点。如果您有多个具有Main方法的类,则必须使用/ main编译器选项编译程序,以指定要用作入口点的Main方法。有关更多信息,请参阅/ main(C#编译器选项)。

  1. Main方法是.exe程序的入口点;它是程序控制开始和结束的地方。
  2. Main在类或结构中声明。 Main必须是静态的,不应该是公开的。 (在前面的示例中,它接收private的默认访问权。)封闭的类或结构不需要是静态的。

答案 2 :(得分:0)

string [] args部分用于支持命令行开关的情况

myprogram.exe argument1 argument2

如果你没有计划使用它们,你就不需要它了。

答案 3 :(得分:0)

公共意味着从外部可以看到方法。这是有道理的,因为您希望加载器从外部启动此方法。但当然:从技术上讲,它可能会赋予它任何其他权利。但是你必须看到,你现在甚至可以加载程序集并自己启动这个方法,这在某些情况下可能很重要。

静态意味着可以在没有类的实例的情况下调用该函数。这很有意义,因为Main是入口点,你希望在没有类的实例的情况下调用这个函数。 如果要在从命令行调用应用程序时使用参数列表,则C#语言提供了一个名为args的字符串[]数组,该数组使用Windows操作系统中的命令行参数填充。因此,例如,您执行您的应用程序想要将一些参数传递给您的应用程序,以便在您从命令行调用应用程序的代码中进一步处理:

" C:\ ConsoleApplication1.exe a b c"

值a b c将存储在args字符串数组中,可以像这样访问:

for (int i = 0; i < args.Length; i++) // Loop through array
{
string argument = args[i];
Console.Write(argument); // Write string
}

您也可以尝试这篇文章:http://www.dotnetperls.com/main