我必须有2种不同的主要方法,1个没有任何参数,1个有string[] args
,但是私有和静态?为什么Main必须是静态的才能接受命令行参数?
1
A
回答
10
不,您只需要有一个Main
方法。事实上,如果你在一个类中有多个静态方法,我不相信你可以指定这个类作为入口点。
它确实必须是静态的;该类不能是通用的,方法也不可以。它可以是:
- 任何的易用性(如可以在类)
- 空隙或具有
int
- 无参数的返回值或具有
string[]
的参数类型它必须是静态的和非泛型的,否则CLR将不得不创建该类的一个实例或分别计算出您想要的类型参数。它没有足够的信息来作出这些决定 - 但它不需要任何关于非泛型类中的静态非泛型方法的信息。
12
为什么
Main
必须static
能够接受命令行参数?
在那里,为您解决这个问题。
Main
必须是静态的,这样才能在没有对象实例的情况下调用它。这是必要的,因为在创建任何实例之前调用Main
。
相关问题
- 1. 为什么静态成员必须在main()之外初始化?
- 2. 为什么const类成员必须是静态的才能正确优化?
- 3. 为什么数据库名称必须是静态的?
- 4. 为什么我们必须命名接口方法参数?
- 5. C - main()命令行参数
- 6. 为什么jsp中的EL函数必须声明为静态?
- 7. 为什么ClassInitialize方法必须是静态的?
- 8. 为什么委托必须是静态的?
- 9. 为什么C#运算符重载必须是静态的?
- 10. 为什么.Net WPF DependencyProperties必须是类的静态成员
- 11. 抛出一个异常,为什么它必须是静态的?
- 12. 为什么我的C++ main()不接受我的参数
- 13. 为什么我必须把这个功能静态
- 14. 我是否必须包含静态类才能使用它
- 15. 为什么operator()[] - > =必须是非静态成员?
- 16. 为什么依赖属性必须是静态
- 17. 什么是sbt的命令行参数?
- 18. 为什么karma-cli不接受文件作为命令行参数?
- 19. 在awk中接受命令行参数
- 20. fread为什么不接受skip命令?
- 21. 为什么我必须玩“rsp”才能调用C++函数?
- 22. bash中的nunit命令不接受静态命令?
- 23. 什么是命令行参数?
- 24. 什么是命令行参数在C#
- 25. 为什么我必须运行“composer dump-autoload”命令才能在laravel中进行迁移?
- 26. 为什么我必须在函数中附上jQuery命令
- 27. 为什么我必须双击才能激活jquery功能?
- 28. 可选参数的默认值必须是静态的吗?
- 29. rsync命令在命令行中最多接受2个参数
- 30. 为什么JavaScript行必须在函数中才能正常工作?
你能举一个例子吗?我不太理解。 – Oded
我不明白这个问题。为什么你不希望该方法必须是静态的? (为什么你会有两种版本的'Main'方法 - 如果你想接受参数,声明一个'string []'参数来包含它们,这是你应该有的方法的唯一版本。) –
http: //social.msdn.microsoft.com/Forums/en-AU/clr/thread/199b7536-501b-4c8b-9fcb-289b158e1be6 – mellamokb