在C# 的類型和成員的聲明中,使用了大量的修飾符,其中有許多是C# 特有的。下面將它們分類匯總,并進行一些簡單的比較和分析。其中用粗體表示的修飾符是C++中沒有的。
1)類型可見性修飾符與成員訪問修飾符——參見下表。
C# 的類型可見性與成員訪問修飾符
修飾符 |
應用對象 |
說明 |
public |
所有的類型和成員 |
任何代碼都可以訪問。 |
protected |
類型和內嵌類型的成員 |
只有其派生的類型能訪問。 |
internal |
類型和內嵌類型的成員 |
只能在包含它的程序集中訪問。 |
private |
所有的類型和成員 |
只能在它所屬的類中訪問。 |
protected internal |
類型和內嵌類型的成員 |
只能在包含它的程序集和其派生的類型中訪問。 |
2)其他修飾符——參見下表。
修飾符 |
應用對象 |
說明 |
new |
函數成員 |
隱藏繼承的同簽名的函數成員。 |
static |
所有成員 |
不在類型實例上執行。 |
virtual |
僅類的函數成員 |
可由派生類重寫。 |
abstract |
類和函數成員 |
只定義了簽名沒有實現代碼。 |
override |
函數成員 |
重寫繼承的虛擬或抽象函數成員。 |
sealed |
類和函數成員 |
類不能被繼承和方法不能被重寫。 |
extern |
僅靜態的DllImport方法 |
成員在外部用另一種語言實現。 |
新聞熱點
疑難解答