C#訪問修飾符


訪問修飾符

  • public:同一程序集中的任何其他代碼或引用該程序集的其他程序集都可以訪問該類型或成員。
  • private:只有同一 class 或 struct 中的代碼可以訪問該類型或成員。
  • protected:只有同一 class 或者從該 class 派生的 class 中的代碼可以訪問該類型或成員。
  • internal:同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集中的代碼不可以。
  • protected internal:該類型或成員可由對其進行聲明的程序集或另一程序集中的派生 class 中的任何代碼訪問。
  • private protected:只有在其聲明程序集內,通過相同 class 中的代碼或派生自該 class 的類型,才能訪問類型或成員。

默認可訪問性

類和結構:訪問修飾符可以為 public 或 internal, 如果未指定任何訪問修飾符,則默認設置為 Internal

類成員和結構成員:結構成員(包括嵌套的類和結構)可以聲明為 publicinternal 或 private。 類成員(包括嵌套的類和結構)可以聲明為 

publicprotected internalprotectedinternalprivate protected 或 private。 默認情況下,類成員和結構成員(包括嵌套的類和結構)的訪問級別為 private。

接口:可以聲明為 public 或 internal,接口默認設置為 internal 訪問級別。 接口成員默認為 public

枚舉:枚舉可以聲明為public 或 internal,默認為internal;枚舉成員始終為 public,並且不能應用任何訪問修飾符。

訪問限制

派生類不能具有高於其基類型的可訪問性,換而言之,不能具有派生自內部類 A 的公共類 B。 如果允許這樣,則它將具有使 A 公開的效果,因為可從派生類訪問 A 的所有受保護的或內部成員

派生類重寫基類方法時,派生類不能修改方法訪問修飾符,需與基類方法訪問修飾符一致。

 

 

參考文檔

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM