1. 程式人生 > >C# 中方法、類的預設修飾符

C# 中方法、類的預設修飾符

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。 和類,結構的成員預設訪問型別一致。