我必须有2种不同的主要方法,1个没有任何参数,1个有string[] args
,但是私有和静态?为什么Main必须是静态的才能接受命令行参数?
1
A
回答
10
不,您只需要有一个Main
方法。事实上,如果你在一个类中有多个静态方法,我不相信你可以指定这个类作为入口点。
它确实必须是静态的;该类不能是通用的,方法也不可以。它可以是:
- 任何的易用性(如可以在类)
- 空隙或具有
int
- 无参数的返回值或具有
string[]
的参数类型它必须是静态的和非泛型的,否则CLR将不得不创建该类的一个实例或分别计算出您想要的类型参数。它没有足够的信息来作出这些决定 - 但它不需要任何关于非泛型类中的静态非泛型方法的信息。
12
为什么
Main
必须static
能够接受命令行参数?
在那里,为您解决这个问题。
Main
必须是静态的,这样才能在没有对象实例的情况下调用它。这是必要的,因为在创建任何实例之前调用Main
。
相关问题
- 1. 为什么静态成员必须在main()之外初始化?
- 2. 为什么数据库名称必须是静态的?
- 3. 为什么我们必须命名接口方法参数?
- 4. 为什么jsp中的EL函数必须声明为静态?
- 5. 为什么我的C++ main()不接受我的参数
- 6. 为什么.Net WPF DependencyProperties必须是类的静态成员
- 7. 为什么委托必须是静态的?
- 8. 为什么C#运算符重载必须是静态的?
- 9. 为什么我必须把这个功能静态
- 10. 什么是sbt的命令行参数?
- 11. 为什么operator()[] - > =必须是非静态成员?
- 12. 为什么karma-cli不接受文件作为命令行参数?
- 13. 在awk中接受命令行参数
- 14. fread为什么不接受skip命令?
- 15. 什么是命令行参数?
- 16. 为什么我必须双击才能激活jquery功能?
- 17. 如何让Perl接受负数作为命令行参数?
- 18. 为什么JavaScript行必须在函数中才能正常工作?
- 19. 为什么我的参数hitTestObject必须是非空错误?
- 20. 使用静态能见度枚举作为命令参数
- 21. 为什么next_post_link必须调用两次才能正常工作?
- 22. 为什么RegEx必须用括号括起来才能匹配?
- 23. 为什么MySQLdb for Mac必须安装MySQL才能安装?
- 24. 为什么我必须添加System.Data.Entity才能使用System.Data.Objects?
- 25. 为什么我必须使用DISTINCT才能正常工作?
- 26. React.createElement接受什么参数?
- 27. 为什么我必须键入一个字母才能连接服务器
- 28. 我必须使用Git软件还是只使用命令行才行?
- 29. ODBC命令不接受参数
- 30. 为什么jobOperator.startNextInstance不接受参数?
你能举一个例子吗?我不太理解。 – Oded
我不明白这个问题。为什么你不希望该方法必须是静态的? (为什么你会有两种版本的'Main'方法 - 如果你想接受参数,声明一个'string []'参数来包含它们,这是你应该有的方法的唯一版本。) –
http: //social.msdn.microsoft.com/Forums/en-AU/clr/thread/199b7536-501b-4c8b-9fcb-289b158e1be6 – mellamokb