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