c# 常量和字段
更新時(shí)間:2012年10月29日 13:55:20 作者:
常量:是一個(gè)特殊的符號(hào),有一個(gè)從不變化的值
它的值是在編譯時(shí)確定的。編譯器將常量保存到程序集的元數(shù)據(jù)中,所有只能是編譯器認(rèn)識(shí)的基元類型作為常量。
常量被看成類的一部分,是看出靜態(tài)成員。
代碼引用一個(gè)常量符號(hào),會(huì)在定義常量的元數(shù)據(jù)中查找該符號(hào),提取之,并嵌入代碼,生成的IL中是值本身。
在c#中使用的是const關(guān)鍵字。
字段:已一種數(shù)據(jù)成員,可以容納任何的數(shù)據(jù)類型,不僅僅想常量一樣只能存儲(chǔ)基元類型。
CLR支持類型字段和實(shí)例字段
類型字段:用于容納字段數(shù)據(jù)的動(dòng)態(tài)內(nèi)存是在類型對(duì)象中分配的,
而類對(duì)象是在類型加載到一個(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)造器方法中寫入,也就是在對(duì)象首次創(chuàng)建的時(shí)候。
編譯器和驗(yàn)證機(jī)制會(huì)確保readonly字段不會(huì)在構(gòu)造器以外的地方寫入。
在c#中允許內(nèi)聯(lián)初始化語法來初始化類的字段。c#實(shí)際是在構(gòu)造器中對(duì)字段進(jìn)行初始化的,內(nèi)聯(lián)代碼只是語法糖。
常量被看成類的一部分,是看出靜態(tài)成員。
代碼引用一個(gè)常量符號(hào),會(huì)在定義常量的元數(shù)據(jù)中查找該符號(hào),提取之,并嵌入代碼,生成的IL中是值本身。
在c#中使用的是const關(guān)鍵字。
字段:已一種數(shù)據(jù)成員,可以容納任何的數(shù)據(jù)類型,不僅僅想常量一樣只能存儲(chǔ)基元類型。
CLR支持類型字段和實(shí)例字段
類型字段:用于容納字段數(shù)據(jù)的動(dòng)態(tài)內(nèi)存是在類型對(duì)象中分配的,
而類對(duì)象是在類型加載到一個(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)造器方法中寫入,也就是在對(duì)象首次創(chuàng)建的時(shí)候。
編譯器和驗(yàn)證機(jī)制會(huì)確保readonly字段不會(huì)在構(gòu)造器以外的地方寫入。
在c#中允許內(nèi)聯(lián)初始化語法來初始化類的字段。c#實(shí)際是在構(gòu)造器中對(duì)字段進(jìn)行初始化的,內(nèi)聯(lián)代碼只是語法糖。
相關(guān)文章
C#調(diào)用SQL?Server中有參數(shù)的存儲(chǔ)過程
這篇文章介紹了C#調(diào)用SQL?Server中有參數(shù)存儲(chǔ)過程的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
WinFrom中l(wèi)abel背景透明的實(shí)現(xiàn)方法
這篇文章主要介紹了WinFrom中l(wèi)abel背景透明的實(shí)現(xiàn)方法,方法簡(jiǎn)單實(shí)用,是C#程序設(shè)計(jì)中非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09
C#中GraphicsPath的Widen方法用法實(shí)例
這篇文章主要介紹了C#中GraphicsPath的Widen方法用法,實(shí)例分析了Widen方法的使用技巧,需要的朋友可以參考下2015-06-06
解析如何正確使用SqlConnection的實(shí)現(xiàn)方法
本篇文章對(duì)如何正確使用SqlConnection的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

