C 學習筆記2 C 中修飾類相關的關鍵字

2021-07-02 07:21:40 字數 1339 閱讀 2106

修飾符用於限定型別以及型別成員的申明,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 學習筆記2 C 變數

1 當乙個精度高的資料型別與乙個精度低的資料型別進行運算時,定義運算結果的變數型別必須與精度最高的變數型別相同。這是為了防止在運算過程中造成資料丟失。如下 double a 42.29 int b 4229 int c a b console.writeline c c console.readke...

C 深度解析教程學習筆記(2)C 中的引用

1 變數名的回顧 變數是一段實際連續儲存空間的別名,程式中通過變數來申請並命名儲存空間 通過變數的名字可以使用儲存空間。變數的名字就是變數的值,變數名是取位址操作 2 c 中新增加了引用的概念 引用可以看作乙個己定義變數的別名 引用的語法 type name var type 為型別名,name 為...

C 學習筆記2 C 引用 vs 指標

引用很容易與指標混淆,它們之間有三個主要的不同 1.不存在空引用。引用必須連線到一塊合法的記憶體。2.一旦引用被初始化為乙個物件,就不能被指向到另乙個物件。指標可以在任何時候指向到另乙個物件。3.引用必須在建立時被初始化。指標可以在任何時間被初始化。void swap int a,int b 這裡需...