CLR筆記 7 常量和字段

2022-01-31 15:51:19 字數 656 閱讀 2752

1.常量

常量是永遠不會改變的符號。它的值必須在編譯時就確定。編譯後,clr將常量的值儲存在assembly的元資料中,這意味著常量必須是基元型別。

常量是型別的一部分,總是被當成靜態成員,但並不顯示宣告為static。

public

const

int32 maxentrieslist 

=100

;public

static

readonly

int32 maxentrieslist 

=100

;由於欄位是基於引用的,所以不會直接嵌入il元資料,從而編譯含有欄位的dll,會對使用該dll的工程造成影響,從而實現了版本控制,總是使用最新的dll。

多數字段使用內聯初始化的。clr建議這麼做,具體的參見 《c# 50個有效的方法》,但是在內聯中不可以使用方法/屬性。

內聯初始化在ctor/cctor之前。

繼續看readonly關鍵字,使用在引用型別的字段上,標誌著該字段是不可改變的引用,而不是不可改變的物件,如下示例:

public

sealed

class

atype;}

public

sealed

class

anothertype;}

}

Chapter7 常量和字段

常量 constant 是乙個特殊的符號,它有乙個從不變化的值,定義常量符號時,它的值必須能在編譯時確定,確定之後,編譯器將常量的值儲存到程式集的元資料中。這意味著只能為編譯器認定的基元型別定義常量,也可以是非基元型別,但必須是null。所以 在引用乙個常量符號時,不需要為常量分配任何記憶體,編譯器...

常量和字段

定義常量符號時,它的值必須能在編譯時確定。確定之後,編譯器將常量的值儲存到程式集的元資料中。這意味著只能為編譯器認定的基元型別定義常量。在c 中,以下型別都是基元型別,可以定義常量 boolean char byte sbyte int16 uint16 int32 uint32 int64 uin...

CLR via C 讀書筆記 常量和字段

常量 constant 字段 field 欄位是一種資料成員,其中容納了乙個值型別的例項或者對乙個引用型別的引用 字段修飾符 clr術語 c 術語 說明 static static 這種欄位是型別狀態的一部分,而不是物件狀態的一部分 instance 預設 這種欄位與型別的乙個例項關聯,而不是與型別...