C#修飾符 |
||
分類 |
修飾符 |
說明 |
存取修飾符號 |
public |
可以在任何地方被訪問,包括類的外部。 |
protected |
可以在它所屬的類的內部被訪問,或在派生於該類的類型中訪問。 |
|
internal |
可以在同一個程序(即當前工程)中被訪問。 |
|
private |
僅可以在它所屬的類的內部被訪問。 |
|
類修飾符 |
abstract |
抽象類。指示一個類只能作爲其它類的基類。 |
sealed |
密封類。指示一個類不能被繼承。理所當然,密封類不能同時又是抽象類,因爲抽象總是希望被繼承的。 |
|
成員修飾符 |
abstract |
指示該方法或屬性沒有實現,即只是定義了方法或屬性名,沒有提供執行方式。 |
sealed |
密封方法。可以防止在派生類中對該方法的override(重載)。不是類的每個成員方法都可以作爲密封方法,必須對基類的虛方法進行重載,提供具體的實現方法。所以,在方法的聲明中,sealed修飾符總是和override修飾符同時使用。 |
|
delegate |
委託。用於聲明一個引用類型,該引用類型可用於封裝命名方法或匿名方法。委託類似於 C++ 中的函數指針;但是,委託是類型安全和可靠的。 |
|
const |
指定該成員的值只讀不允許修改。 |
|
event |
聲明一個事件。 |
|
extern |
指示方法在外部實現。 |
|
override |
重寫。對由基類繼承成員的新實現。 |
|
readonly |
聲明一個字段,該字段只能賦值爲該聲明的一部分或者在同一個類的構造函數中。 |
|
static |
聲明屬於類型本身而不是屬於特定對象的成員。即在定義後不要實例化就可以使用。 |
|
virtual |
指示一個方法或存取器的實現可以在繼承類中被覆蓋。 |
|
new |
在派生類中隱藏指定的基類成員,從而實現重寫的功能。 若要隱藏繼承類的成員,請使用相同名稱在派生類中聲明該成員,並用 new 修飾符修飾它。 |
|
volatile |
volatile 關鍵字表示字段可能被多個併發執行線程修改。聲明爲 volatile 的字段不受編譯器優化(假定由單個線程訪問)的限制。這樣可以確保該字段在任何時間呈現的都是最新的值。 volatile 修飾符通常用於由多個線程訪問而不使用 lock 語句對訪問進行序列化的字段。 volatile 關鍵字可應用於以下類型的字段: l 引用類型。 l 指針類型(在不安全的上下文中)。請注意,雖然指針本身可以是可變的,但是它指向的對象不能是可變的。換句話說,您無法聲明“指向可變對象的指針”。 l 整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。 l 具有整數基類型的枚舉類型。 l 已知爲引用類型的泛型類型參數。 l IntPtr 和 UIntPtr。 可變關鍵字僅可應用於類或結構字段。不能將局部變量聲明爲 volatile。 |
|
屬性修飾符 |
[Serializable] |
按值將對象封送到遠程服務器。在按值封送對象時,就會創建一個該對象的副本,並將其序列化傳送到服務器。 任何對該對象的方法調用都是在服務器上進行的。 |
[STAThread] |
是Single-Threaded Apartment單線程套間的意思,是一種線程模型(線程模式用於處理組件在多線程的環境裏並行與並互的方式),套間線程(STAThread)模式中接口跨線程傳遞必須被調度(Marshal),不調度直傳肯定會失敗!而MTA或FreeThread模式中的接口可以不經調度直接傳遞。這種調度在特定的環境中非常影響性能(可有幾百倍之差)。如VB裏只支持STAThread模式。FreeThread模式的組件會在裏面表現成和跨進程一樣慢。 |
|
[MTAThread] |
是MultiThreaded Apartment多線程套間的意思,同上也是一種線程模型。 |
C# 修飾符總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.