C#編程(二十四)----------修飾符
修飾符
修飾符即應用於類型或成員的關鍵字.修飾符可以指定方法的可見性,如public或private,還可以指定一項的本質,如剛發的vritual或abstract.
可見性的修飾符
修飾符 |
應用於 |
說明 |
public |
所有類型或成員 |
任何代碼均可以訪問該項 |
protected |
類型和內嵌類型的所有成員 |
只有派生的類型能訪問該項 |
internal |
所有類型或成員 |
只能包含它的程序集中訪問該項 |
private |
類型和內嵌類型的所有成員 |
只能在它所屬的類型中訪問該項 |
protected internal |
類型和內嵌類型的所有成員 |
只能在包含他的程序集中和派生類型的任何代碼中訪問該項 |
註意,類的定義只能是內部的或公有的,這取決於是否希望在類型包含的程序集外部訪問它:
public class MyClass
{}
不能把類型聲明為protected,private,和protected internal,因為這些修飾符對於包含在名稱空間中的類型沒有意義.因此這些修飾符只能應用與成員.但是,可以用這些修飾符定義嵌套的類型(即,包含在其他類型中的類型).因為在這種情況下,類型也具有成員的狀態.於是下面的代碼是合法的:
public class OuterClass
{
protected class InnerClass
{}
}
如果有嵌套的類型,則內部的類型總是可以訪問外部類型的所有成員.所以,上面的代碼中,InnerClass中代碼可以訪問OuterClass的所有成員,甚至可以訪問OuterClass的私有成員.
其他修飾符
修飾符 |
應用於 |
說明 |
new |
函數成員 |
成員相同的簽名隱藏繼承的成員 |
static |
所有成員 |
成員不作用於類的具體實例 |
vritual |
僅函數成員 |
成員可以由派生類重寫 |
abstract |
金函數成員 |
虛擬成員定義了成員的簽名,單沒有提供實現代碼 |
override |
僅函數成員 |
成員重寫了繼承的虛擬或抽象成員 |
sealed |
類,方法和屬性 |
對於類,不能繼承自密封類.對於屬性和方法,成員重寫已繼承的虛擬成員,但任何派生類中的任何成員都不能重寫該校恒源.該修飾符必須與override一起使用 |
extern |
僅靜態方法 |
成員在外部用寧一中語言實現. |
C#編程(二十四)----------修飾符