C 修飾符總結

2021-06-15 20:50:38 字數 1325 閱讀 5988

修飾符用於限定型別以及型別成員的申明,c#中的修飾符按功能可分為四部分:屬性修飾符,訪問修飾符,類修飾符和成員修飾符。

屬性修飾符:

[serializable]:按值將物件封送到遠端伺服器。在按值封送物件時,就會建立乙個該物件的副本,並將其序列化傳送到伺服器。 任何對該物件的方法呼叫都是在伺服器上進行的。

[stathread]:是single-threaded apartment單執行緒套間的意思,是一種執行緒模型(執行緒模式用於處理元件在多執行緒的環境裡並行與並互的方式),套間執行緒(stathread)模式中介面跨執行緒傳遞必須被排程(marshal),不排程直傳肯定會失敗!而mta或freethread模式中的介面可以不經排程直接傳遞。這種排程在特定的環境中非常影響效能(可有幾百倍之差)。如vb裡只支援stathread模式。freethread模式的元件會在裡面表現成和跨程序一樣慢!執行緒模式是微軟的com基礎中的極其重要的概念。一定要吃透!

[mtathread]:是multithreaded apartment多執行緒套間的意思,同上也是一種執行緒模型。

訪問修飾符:

public:訪問不受限制。

private:只有包含該成員的類可以訪問。

internal:只有當前工程可以訪問。

protected:只有包含該成員的類以及派生類可以訪問。

類修飾符:

abstract:抽象類。指示乙個類只能作為其它類的基類。

sealed:密封類。指示乙個類不能被繼承。理所當然,密封類不能同時又是抽象類,因為抽象總是希望被繼承的。

成員修飾符:

abstract:指示該方法或屬性沒有實現。

sealed:密封方法。可以防止在派生類中對該方法的override(過載)。不是類的每個成員方法都可以作為密封方法密封方法,必須對基類的虛方法進行過載,提供具體的實現方法。所以,在方法的宣告中,sealed修飾符總是和override修飾符同時使用。

delegate:委託。用來定義乙個函式指標。c#中的事件驅動是基於delegate + event的。

const:指定該成員的值唯讀不允許修改。

event:宣告乙個事件。

extern:指示方法在外部實現。

override:重寫。對由基類繼承成員的新實現。

readonly:指示乙個域只能在宣告時以及相同類的內部被賦值。

static:指示乙個成員屬於型別本身,而不是屬於特定的物件。即在定義後可不經例項化,就可使用。

virtual:指示乙個方法或訪問器的實現可以在繼承類中被覆蓋。

new:在派生類中隱藏指定的基類成員,從而實現重寫的功能。 若要隱藏繼承類的成員,請使用相同名稱在派生類中宣告該成員,並用 new 修飾符修飾它。

C 修飾符 總結

c 中的修飾符用於限定型別和成員方法。修飾符有幾種不同的分法,可以分為類的修飾符 成員修飾符和訪問修飾符。一 類修飾符,用於修飾類種類。1 abstract 用於定義乙個抽象類,抽象類不能被例項化,只能作為其他類的基類,可以被繼承,且派生類中需要實現抽象類的所有成員。2 sealed 用於定義乙個不...

C 修飾符 總結

c 中的修飾符用於限定型別和成員方法。修飾符有幾種不同的分法,可以分為類的修飾符 成員修飾符和訪問修飾符。一 類修飾符,用於修飾類種類。1 abstract 用於定義乙個抽象類,抽象類不能被例項化,只能作為其他類的基類,可以被繼承,且派生類中需要實現抽象類的所有成員。2 sealed 用於定義乙個不...

修飾符總結

1 private 私有的。只能在本類中使用 2 public 公共的。都可以用 3 protected 受保護的。子孫後代可以用 4 internal 內部的。只能在專案中用 5 abstract 抽象的。可以修飾類 繼承該類必須實現其中的抽象方法,本身不能被例項化 可以修飾方法 無方法體 6 s...