能在命名空間中定義的元素有:類(class),結構(struct),委託(delegate),介面(inte***ce),列舉(enum)
我們的訪問修飾符一共有5個級別
public, private, protected, internal, protected internal
1.命名空間下的元素的預設訪問修飾符
根據上面的紅色錯誤提示,可以知道命名空間下只能使用兩種訪問修飾符public和internal。如果沒有顯示的給這些元素訪問修飾符,其修飾符預設為internal 。
public : 同一程式集的其他任何**或引用該程式集的其他程式集都可以訪問該型別或成員。
internal : 同一程式集中的任何**都可以訪問該型別或成員,但其他程式集不可以訪問。
2.各型別中的成員的預設訪問修飾符
剩下的修飾符主要是正對繼承這個語言特性的,擁有繼承的型別有兩個類(class)和介面(inte***ce)。public,internal同樣可以用於型別成員。
privat
e : 同一類和結構的**可以訪問該型別和成員。
protected : 同一類和派生(繼承特性)類中的**可以訪問該型別和成員。
protected internal : 同一程式集中的任何**或其他程式集中的任何派生類都可以訪問該型別或成員。
msdn提示 :
1.) 派生類的可訪問性不能高於其基型別。換句話說,不能有從內部類 a 派生的公共類 b。如果允許這種情況,將會使 a 成為公共類,因為 a 的所有受保護的成員或內部成員都可以從派生類訪問。
2.) 成員的可訪問性決不能高於其包含型別的可訪問性。
3.) 可以使用五種訪問型別中的任何一種來宣告類成員(包括巢狀的類和結構)。
介面成員
介面成員訪問修飾符預設為public,且不能顯示使用訪問修飾符。
類成員建構函式預設為private訪問修飾符。
析構函式不能顯示使用訪問修飾符且預設為private訪問修飾符。
類的成員預設訪問修飾符為private;
列舉成員
列舉型別成員預設為public訪問修飾符,且不能顯示使用修飾符。
結構成員
結構成員預設為private修飾符。
結構成員無法宣告為protected成員,因為結構不支援繼承。
巢狀型別
巢狀型別的預設訪問修飾符為private。 和類,結構的成員預設訪問型別一致。
C 訪問修飾符及各種元素的訪問修飾符的預設值
乙個編譯器錯誤提示 在命名空間中定義的元素無法顯示的宣告為 private,protected,protected internal。能在命名空間中定義的元素有 類 class 結構 struct 委託 delegate 介面 inte ce 列舉 enum msdn提示 protected int...
C 訪問修飾符
所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他 中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修飾符之一來指定其可訪問性 public 訪問不受限制。可以類內和任何類外的 中訪問。private 可以被所屬類訪問。只有同一類或結構中的 可以訪問該型別或成員。pro...
C 訪問 修飾符
例 internal class a public class b a 是不允許的 public class c是不允許的.msdn參考 訪問修飾符 c 程式設計指南 所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他 中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修...