1. 程式人生 > 其它 >C#的修飾符

C#的修飾符

C#修飾符之類修飾符:public、internal、 partial、abstract、sealed、static

C#修飾符之成員修飾符:public、protected、private、internal、sealed、abstract、virtual、override、readonly、const

c#裡面一共有五種訪問修飾符,五種中每個種的訪問許可權都是不一樣的

public:(可以修飾類也可以修飾成員)公共的,最高的訪問級別,訪問沒有限制

Internal:(可以修飾類也可以修飾成員)內部的,類和方法的預設訪問修飾符是internal,只有在本程式集內的成員可以訪問,其他程式集或站點引用其所在的程式集無法訪問此類。例如程式集LibraryA寫有ClassA,程式集LibraryB引用LibraryA,在LibraryB的類或方法裡無法通過LibraryA呼叫ClassA

Partial:(它只修飾類),部分的,可以將一個類分成幾部分寫在不同檔案中,最終編譯時將合併成一個檔案,且各個部分不能分散在不同程式集中

Abstract:(可以修飾類也可以修飾成員)抽象的,修飾類的時候表示該類為抽象類,不能夠建立該類的例項。修飾方法的時候表示該方法需要由子類來實現,如果子類沒有實現該方法那麼子類同樣是抽象類;且含有抽象方法的類一定是抽象類

Sealed:(可以修飾類也可以修飾成員)密封的,修飾類時表示該類不能夠被繼承,修飾方法時表示該方法不能被重寫【sealed相當於java中的final修飾符】

Static:(可以修飾類也可以修飾成員)靜態的,修飾類時表示該類是靜態類,不能例項化該類的物件,既然不能例項化該類,那麼這個類也就不能含有物件成員,即該類所有成員為靜態;類成員只能通過【類.成員名】的方式訪問。當static修飾建構函式時,建構函式不能含有任何引數,不能含有修飾符,建構函式不能對物件成員進行初始化操作。但是能夠對靜態成員進行初始化或者呼叫。不能保證他在什麼時候執行,卻能保證在第一次使用型別前執行。在靜態建構函式中初始化的靜態成員為最終初始化結果

private:(只修飾成員)私有的,最低的訪問級別,被private訪問修飾符修飾的成員只有在當前類的內部可以訪問,其他地方一律不得訪問

protected:(只修飾成員)受保護的, 只有在當前類內部及所有的子類內部可以訪問。只有繼承父類後,才可以呼叫它的屬性

Virtual:修飾方法成員,表示虛方法。父類可以含有該類的實現,子類可以覆寫該函式。

Override:表示該方法為覆寫了父類的方法。

Readonly:修飾字段,表示該欄位為只讀欄位。readonly是執行時只讀,內容在執行時確定,所以修改了readonly型別成員後無需重新編譯即可生效,Readonly不能修飾區域性變數

Const

:修飾字段,表示該欄位為只讀欄位。const修飾的欄位在編譯時必須能夠明確知道該欄位的值,其值是硬編碼到程式中去的,修改了該型別成員後需要重新編譯才能使修改生效,const可以修飾區域性變數