2011-02-12 73 views
7

訪問修飾符是否會影響C#中的性能?訪問修飾符是否會影響性能?

+4

沒有任何相關的程度。專注於更重要的事情,比如你的類的*設計*,而不是像這樣的性能「優化」。 – 2011-02-12 06:26:14

回答

9

不,訪問修飾符不被運行時考慮執行。編譯之後他們唯一需要的就是使用反射和查詢程序集的元數據。

想象訪問修飾符像混凝土形式。當混凝土溼潤時,它們就位,爲溼混凝土提供形式和邊界。一旦混凝土乾燥,它們將被移除,因爲它們不再需要。訪問修飾符是未編譯代碼的具體形式 - 一旦代碼被編譯,訪問修飾符不再是一個因素(即使它們是發佈的IL的一部分)。

編輯:也許「不再是一個因素」有點含糊。我的意思是編譯器的工作是確保所有訪問修飾符都得到正確的遵守,並且不會發生違規。運行時(至少微軟的CLR--其他運行時可以自由地以任何他們認爲合適的方式實現)相信編譯器已經完成了它的工作,並且不需要進一步的檢查。