c# 常量和字段
更新時(shí)間:2012年10月29日 13:55:20 作者:
常量:是一個(gè)特殊的符號,有一個(gè)從不變化的值
它的值是在編譯時(shí)確定的。編譯器將常量保存到程序集的元數(shù)據(jù)中,所有只能是編譯器認(rèn)識的基元類型作為常量。
常量被看成類的一部分,是看出靜態(tài)成員。
代碼引用一個(gè)常量符號,會(huì)在定義常量的元數(shù)據(jù)中查找該符號,提取之,并嵌入代碼,生成的IL中是值本身。
在c#中使用的是const關(guān)鍵字。
字段:已一種數(shù)據(jù)成員,可以容納任何的數(shù)據(jù)類型,不僅僅想常量一樣只能存儲(chǔ)基元類型。
CLR支持類型字段和實(shí)例字段
類型字段:用于容納字段數(shù)據(jù)的動(dòng)態(tài)內(nèi)存是在類型對象中分配的,
而類對象是在類型加載到一個(gè)AppDomain中創(chuàng)建的。
通常是在引用該類型的任何方法首次進(jìn)行JIT編譯的時(shí)候。
實(shí)例字段:用于容納字段數(shù)據(jù)的動(dòng)態(tài)內(nèi)存是在構(gòu)造類型的實(shí)例時(shí)分配的。
由于字段存儲(chǔ)在動(dòng)態(tài)內(nèi)存中,所以它們的值在運(yùn)行時(shí)才獲取,字段解決了常量存在版本控制的問題。
CLR支持readonly 字段 和 read/write字段
read、write字段可以在代碼中多次改變。
readonly字段只能在構(gòu)造器方法中寫入,也就是在對象首次創(chuàng)建的時(shí)候。
編譯器和驗(yàn)證機(jī)制會(huì)確保readonly字段不會(huì)在構(gòu)造器以外的地方寫入。
在c#中允許內(nèi)聯(lián)初始化語法來初始化類的字段。c#實(shí)際是在構(gòu)造器中對字段進(jìn)行初始化的,內(nèi)聯(lián)代碼只是語法糖。
常量被看成類的一部分,是看出靜態(tài)成員。
代碼引用一個(gè)常量符號,會(huì)在定義常量的元數(shù)據(jù)中查找該符號,提取之,并嵌入代碼,生成的IL中是值本身。
在c#中使用的是const關(guān)鍵字。
字段:已一種數(shù)據(jù)成員,可以容納任何的數(shù)據(jù)類型,不僅僅想常量一樣只能存儲(chǔ)基元類型。
CLR支持類型字段和實(shí)例字段
類型字段:用于容納字段數(shù)據(jù)的動(dòng)態(tài)內(nèi)存是在類型對象中分配的,
而類對象是在類型加載到一個(gè)AppDomain中創(chuàng)建的。
通常是在引用該類型的任何方法首次進(jìn)行JIT編譯的時(shí)候。
實(shí)例字段:用于容納字段數(shù)據(jù)的動(dòng)態(tài)內(nèi)存是在構(gòu)造類型的實(shí)例時(shí)分配的。
由于字段存儲(chǔ)在動(dòng)態(tài)內(nèi)存中,所以它們的值在運(yùn)行時(shí)才獲取,字段解決了常量存在版本控制的問題。
CLR支持readonly 字段 和 read/write字段
read、write字段可以在代碼中多次改變。
readonly字段只能在構(gòu)造器方法中寫入,也就是在對象首次創(chuàng)建的時(shí)候。
編譯器和驗(yàn)證機(jī)制會(huì)確保readonly字段不會(huì)在構(gòu)造器以外的地方寫入。
在c#中允許內(nèi)聯(lián)初始化語法來初始化類的字段。c#實(shí)際是在構(gòu)造器中對字段進(jìn)行初始化的,內(nèi)聯(lián)代碼只是語法糖。
相關(guān)文章
C#去除DataTable重復(fù)數(shù)據(jù)的三種方法
這篇文章主要介紹了C#去除DataTable重復(fù)數(shù)據(jù)的三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Unity實(shí)現(xiàn)倒計(jì)時(shí)組件
這篇文章主要介紹了Unity實(shí)現(xiàn)倒計(jì)時(shí)組件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
使用C#實(shí)現(xiàn)上位機(jī)與PLC通信的過程詳解
隨著工業(yè)自動(dòng)化技術(shù)的不斷發(fā)展,PLC(可編程邏輯控制器)已成為現(xiàn)代生產(chǎn)過程中不可或缺的設(shè)備,為了實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)交換和遠(yuǎn)程控制,上位機(jī)系統(tǒng)需要與PLC進(jìn)行通信,在本文中,我們將從零開始,介紹如何使用C#實(shí)現(xiàn)上位機(jī)與PLC的通信,需要的朋友可以參考下2025-01-01

