訪問修飾符
- public:同一程序集中的任何其他代碼或引用該程序集的其他程序集都可以訪問該類型或成員。
- private:只有同一
class
或struct
中的代碼可以訪問該類型或成員。 - protected:只有同一
class
或者從該class
派生的class
中的代碼可以訪問該類型或成員。 - internal:同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集中的代碼不可以。
- protected internal:該類型或成員可由對其進行聲明的程序集或另一程序集中的派生
class
中的任何代碼訪問。 - private protected:只有在其聲明程序集內,通過相同
class
中的代碼或派生自該class
的類型,才能訪問類型或成員。
默認可訪問性
類和結構:訪問修飾符可以為 public
或 internal,
如果未指定任何訪問修飾符,則默認設置為 Internal
。
類成員和結構成員:結構成員(包括嵌套的類和結構)可以聲明為 public
、internal
或 private
。 類成員(包括嵌套的類和結構)可以聲明為
public
、protected internal
、protected
、internal
、private protected
或 private
。 默認情況下,類成員和結構成員(包括嵌套的類和結構)的訪問級別為 private。
接口:可以聲明為 public
或 internal
,接口默認設置為 internal
訪問級別。 接口成員默認為 public
。
枚舉:枚舉可以聲明為public
或 internal,默認為internal
;枚舉成員始終為 public
,並且不能應用任何訪問修飾符。
訪問限制
派生類不能具有高於其基類型的可訪問性,換而言之,不能具有派生自內部類 A
的公共類 B
。 如果允許這樣,則它將具有使 A
公開的效果,因為可從派生類訪問 A
的所有受保護的或內部成員
派生類重寫基類方法時,派生類不能修改方法訪問修飾符,需與基類方法訪問修飾符一致。
參考文檔