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