2010-11-15 38 views

回答

7

訪問修飾符有助於直接程序流。它們就像交通信號 - 你不必遵守它們,在某些情況下,授權的玩家可能會選擇忽略它們,但是你通常要尊重它們,因爲它們使一切運行得更加順暢。

2

私人構造函數通常用於設計模式(例如,Factory Method Pattern,Singleton Pattern)以防止對象被錯誤地實例化。

如果您不需要訪問任何實例變量(編譯器不必檢查對象是否非空),則私有靜態方法通常會更快地調用。

2

反射被認爲是一種比通常的訪問類更強大的方式 - 建議非受控代碼的非公開訪問被拒絕 - 請參閱ReflectionPermission

沒有性ReflectionPermission,代碼可以 使用反射來訪問對象只的 公共成員。代碼與 ReflectionPermission和 相應的ReflectionPermissionFlag 標誌可以訪問受保護的和 私有成員的對象。

注意

因爲性ReflectionPermission 可以訪問非公共類型 和成員,我們建議您不要 不予性ReflectionPermission到 互聯網代碼,除了與 ReflectionPermissionFlag.RestrictedMemberAccess 標誌。 RestrictedMemberAccess允許 訪問非公共成員,與 限制該授予集的 非公共成員的必須等於, 或子集,授予集的 代碼的訪問的非公開 成員。一樣的,與在第一時間與裝配基準設定訪問修飾符,爲直接客戶 -

換句話說,人如果你讓他們只能訪問類的內部。任何成員只有在讓其可見時纔可見。

0

此行爲在Silverlight運行時中不同,其中基本上反射只能執行編譯器(C#或VB)允許的內容。 因此,在Silverlight中,即使使用Activator.CreateInstance,也不能使用私有構造函數實例化。

相關問題