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

Joa*_*nge 1 .net c# command-line-arguments

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

Ben*_*igt 12

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

那里,为你修好了.

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


Jon*_*eet 10

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

确实必须是静态的; 该类不能是通用的,也不能是该方法.有可能:

  • 任何可访问性(如同类)
  • 无效或具有返回值 int
  • 无参数或参数类型为 string[]

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