为什么Main必须是静态的才能接受命令行参数?

时间:2011-10-07 20:51:09

标签: c# .net command-line-arguments

我是否必须有2种不同的主要方法,1种没有任何参数,1种只有string[] args但私有和静态?

2 个答案:

答案 0 :(得分:12)

  

为什么Main必须static 才能接受命令行参数

在那里,为你修好了。

Main必须是静态的,以便可以在没有对象实例的情况下调用它。这是必要的,因为在创建任何实例之前调用Main

答案 1 :(得分:10)

不 - 您只需要一个Main方法。实际上,如果一个类中有多个静态Main方法,我不相信你可以将该类指定为入口点。

必须是静态的;该类不能是通用的,也不能是该方法。它可以是:

  • 任何辅助功能(和班级一样)
  • 无效或返回值为int
  • 无参数或参数类型为string[]

它必须是静态的和非泛型的,否则CLR必须分别创建类的实例或计算出你想要的类型参数。它没有足够的信息来做出这些决定 - 但它不需要任何非泛型类中的静态非泛型方法的信息。