2012-10-22 99 views
7

對於Main方法,可用的訪問修飾符是否重要?如果不是,Main爲什麼允許我們指定修飾符?爲什麼編譯器不能阻止我們指定一些微不足道的東西?訪問修飾符對於Main方法是否重要?

+5

'主必須是靜態的,它不應該被public.' - 來源:http://msdn.microsoft.com/en-us/library/acy3edy3.aspx – Oded

+0

找到約翰Steeks回答相關問題 HTTP ://stackoverflow.com/a/3736037/823369 –

+1

靜態修飾符意味着它不必被實例化來使用它。在程序運行之前,技術上還沒有創建任何對象,因此作爲應用程序入口點的主要方法必須標記爲靜態,以告知編譯器可以在不首先創建該類的實例的情況下使用該方法。否則,它是「哪個先出現,雞還是蛋?」現象。 –

回答

5

主要是公共/私人不影響CLR根本調用它。 CLR將查找名爲main(默認情況下,但不一定)的靜態方法,該方法與其入口點關聯,而不查看訪問修飾符

它隻影響main對其他函數的可見性。 良好的做法是爲主到不公開因爲它不會被您的程序集中的其他方法調用,只能通過CLR調用。