C 訪問修飾符及各種元素的訪問修飾符的預設值

2021-12-29 16:25:49 字數 1374 閱讀 6415

乙個編譯器錯誤提示:在命名空間中定義的元素無法顯示的宣告為 private, protected, protected internal。

能在命名空間中定義的元素有:類(class),結構(struct),委託(delegate),介面(inte***ce),列舉(enum) 

msdn提示: protected internal 可訪問性的意思是受保護「或」內部,而不是受保護「和」內部。

我們的訪問修飾符一共有5個級別

public, private, protected, internal, protected internal

1.命名空間下的元素的預設訪問修飾符

根據上面的紅色錯誤提示,可以知道命名空間下只能使用兩種訪問修飾符public和internal。如果沒有顯示的給這些元素訪問修飾符,其修飾符預設為internal 。

public : 同一程式集的其他任何**或引用該程式集的其他程式集都可以訪問該型別或成員。

internal : 同一程式集中的任何**都可以訪問該型別或成員,但其他程式集不可以訪問。 

2.各型別中的成員的預設訪問修飾符

剩下的修飾符主要是正對繼承這個語言特性的,擁有繼承的型別有兩個類(class)和介面(inte***ce)。public,internal同樣可以用於型別成員。

private : 同一類和結構的**可以訪問該型別和成員。

protected : 同一類和派生(繼承特性)類中的**可以訪問該型別和成員。

protected internal :  同一程式集中的任何**或其他程式集中的任何派生類都可以訪問該型別或成員。

msdn提示 :

1.) 派生類的可訪問性不能高於其基型別。換句話說,不能有從內部類 a 派生的公共類 b。如果允許這種情況,將會使 a 成為公共類,因為 a 的所有受保護的成員或內部成員都可以從派生類訪問。 

2.) 成員的可訪問性決不能高於其包含型別的可訪問性。 

3.) 可以使用五種訪問型別中的任何一種來宣告類成員(包括巢狀的類和結構)。 

介面(inte***ce)

介面成員訪問修飾符預設為public,且不能顯示使用訪問修飾符。

類(class)

建構函式預設為public訪問修飾符。

析構函式不能顯示使用訪問修飾符且預設為private訪問修飾符。 

類的成員預設訪問修飾符為private; 

列舉(enum)

列舉型別成員預設為public訪問修飾符,且不能顯示使用修飾符。

結構(struct) 

結構成員預設為private修飾符。 

結構成員無法宣告為protected成員,因為結構不支援繼承。 

巢狀型別

巢狀型別的預設訪問修飾符為private。 和類,結構的成員預設訪問型別一致。

C 訪問修飾符及各種元素的訪問修飾符的預設值

能在命名空間中定義的元素有 類 class 結構 struct 委託 delegate 介面 inte ce 列舉 enum 我們的訪問修飾符一共有5個級別 public,private,protected,internal,protected internal 1.命名空間下的元素的預設訪問修飾符...

C 訪問修飾符

所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他 中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修飾符之一來指定其可訪問性 public 訪問不受限制。可以類內和任何類外的 中訪問。private 可以被所屬類訪問。只有同一類或結構中的 可以訪問該型別或成員。pro...

C 訪問 修飾符

例 internal class a public class b a 是不允許的 public class c是不允許的.msdn參考 訪問修飾符 c 程式設計指南 所有型別和型別成員都具有可訪問性級別,用來控制是否可以在您程式集的其他 中或其他程式集中使用它們。您在宣告型別或成員時使用以下訪問修...