C#语言中的修饰符
public:公有訪問。不受任何限制。
private:私有訪問。只限于本類成員訪問,子類和實例都不能訪問。
protected:保護訪問。只限于本類和子類訪問,實例不能訪問。
internal:內(nèi)部訪問。只限于本項目(程序集)內(nèi)訪問,其他不能訪問。
protected internal :內(nèi)部保護訪問。只限于本項目或是本類和子類訪問,其他不
?????????????????? 能訪問
1、類(class)
??? 默認的修飾符:private?? ?
??? 可以被修飾的:public,private,internal,protected,protected internal
2、枚舉(enum)
??? 默認的修飾符:private
??? 可以被修飾的:public,private,internal
3、結(jié)構(gòu)(struct)
??? 默認的修飾符:public
4、接口(interface)
??? 默認的修飾符:public
?
只能用在方法或變量的修飾符
(1) const:指定無法修改字段或局部變量的值。
用于修改字段或局部變量的聲明。它指定字段或局部變量的值是常數(shù),不能被修改。
(2) new:從基類成員隱藏繼承的成員。
在用作修飾符時,new關(guān)鍵字可以顯式隱藏從基類繼承的成員。隱藏繼承的成員意味著該成 員的派生版本將替換基類版本。在不使用 new修飾符的情況下隱藏成員是允許的,但會生成警告。使用 new顯式隱藏成員會取消此警告,并記錄代之以派生版本這一事實。
若要隱藏繼承的成員,請使用相同名稱在派生類中聲明該成員,并使用 new修飾符修飾該成員。
對同一成員同時使用 new和override是錯誤的,因為這兩個修飾符在含義上相互排斥。使用 new會用同樣的名稱創(chuàng)建一個新成員并使原始成員變?yōu)殡[藏的,而 override則擴展繼承成員的實現(xiàn)。
(3) virtual:在派生類中聲明其實現(xiàn)可由重寫成員更改的方法或訪問器。
用于修飾方法、屬性、索引器或事件聲明,并且允許在派生類中重寫這些對象。
調(diào)用虛方法時,將為重寫成員檢查該對象的運行時類型。將調(diào)用大部分派生類中的該重寫成員,如果沒有派生類重寫該成員,則它可能是原始成員。
默認情況下,方法是非虛擬的。不能重寫非虛方法。
virtual修飾符不能與 static、abstract和 override修飾符一起使用。
除了聲明和調(diào)用語法不同外,虛擬屬性的行為與抽象方法一樣。
(4) override:提供從基類繼承的虛擬成員的新實現(xiàn)。
要擴展或修改繼承的方法、屬性、索引器或事件的抽象實現(xiàn)或虛實現(xiàn),必須使用 override修飾符。
(5) readonly:聲明一個字段,該字段只能賦值為該聲明的一部分或者在同一個類的構(gòu)造函數(shù)中。
是可以在字段上使用的修飾符。當字段聲明包括 readonly修飾符時,該聲明引入的字段賦值只能作為聲明的一部分出現(xiàn),或者出現(xiàn)在同一類的構(gòu)造函數(shù)中。在此示例中,字段year的值無法在ChangeYear方法中更改,即使在類構(gòu)造函數(shù)中給它賦了值。
=========================================================================
C#中除訪問修飾符外,還有很多非訪問的修飾符:
partial,abstract,sealed,static,virtual,override。
partial:部分類,可以將一個類分成幾部分寫在不同的文件中,最終編譯時將合并
??????? 成一個文件,且各個部分不能分散在不同程序集中。
abstract:抽象類,不能夠創(chuàng)建該類的實例;修飾方法時表示該方法需要由子類來 ?
???????? 實現(xiàn),如果子類沒有實現(xiàn)該方法,那么子類同樣是抽象類。含有抽象方? ?
???? 法的類一定是抽象類。
sealed:密封類,該類不能夠被繼承;修飾方法時表示該方法不能被重寫。
static:靜態(tài)類,不能被實例化,既然不能被實例化,那么這個類也就不能夠含有 ?
?????? 對象成員,即該類所有成員為靜態(tài);訪問類成員時只能通過“類名.成員?? ?
???? 名”的方式訪問。
virtual:修飾方法成員,表示虛方法。父類可以含有該類的實現(xiàn),子類可以重寫該
???????? 方法。
override:表示該方法重寫了父類的方法。
無或internal
? 類只能在當前項目中訪問
public
?類可以在任何地方訪問公有訪問。不受任何限制。
abstract或internal abstract
??? 類只能在當前項目中訪問,不能實例化,只能繼承私有訪問
public abstract
??? 類可以在任何地方訪問,不能實例化,只能繼承
sealed或internal sealed
??? 類只能在當前項目中訪問,不能派生,只能實例化
public sealed
??? 類可以在任何地方訪問,不能派生,只能實例化
轉(zhuǎn)載于:https://www.cnblogs.com/xwl317/p/6836128.html
總結(jié)
- 上一篇: 乌镇不买票可以进去吗
- 下一篇: 好花得绿叶配下一句是什么呢?