C# 方法默認訪問級別: private
C# 類默認訪問級別: internal
1.命名空間下的元素的默認訪問修飾符
public : 同一程序集的其他任何代碼或引用該程序集的其他程序集都可以訪問該類型或成員。
internal : 同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集不可以訪問。
2.各類型中的成員的默認訪問修飾符
剩下的修飾符主要是正對繼承這個語言特性的,擁有繼承的類型有兩個類(class)和接口(interface)。public,internal同樣可以用於類型成員。
private : 同一類和結構的代碼可以訪問該類型和成員。
protected : 同一類和派生(繼承特性)類中的代碼可以訪問該類型和成員。
protected internal : 同一程序集中的任何代碼或其他程序集中的任何派生類都可以訪問該類型或成員。
MSDN提示 :
1.) 派生類的可訪問性不能高於其基類型。換句話說,不能有從內部類A 派生的公共類B。如果允許這種情況,將會使A 成為公共類,因為A 的所有受保護的成員或內部成員都可以從派生類訪問。
2.) 成員的可訪問性決不能高於其包含類型的可訪問性。
3.) 可以使用五種訪問類型中的任何一種來聲明類成員(包括嵌套的類和結構)。
接口(interface)
接口成員訪問修飾符默認為public,且不能顯示使用訪問修飾符。
類(class)
構造函數默認為public訪問修飾符。
析構函數不能顯示使用訪問修飾符且默認為private訪問修飾符。
類的成員默認訪問修飾符為private;
枚舉(enum)
枚舉類型成員默認為public訪問修飾符,且不能顯示使用修飾符。
結構(struct)
結構成員默認為private修飾符。
結構成員無法聲明為protected成員,因為結構不支持繼承。
嵌套類型
嵌套類型的默認訪問修飾符為private。 和類,結構的成員默認訪問類型一致
摘自:Andrew's Blog