我必須有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