淺談c#中const與readonly區(qū)別
const 的概念就是一個包含不能修改的值的變量。
常數(shù)表達(dá)式是在編譯時可被完全計算的表達(dá)式。因此不能從一個變量中提取的值來初始化常量。
如果 const int a = b+1;b是一個變量,顯然不能再編譯時就計算出結(jié)果,所以常量是不可以用變量來初始化的。
readonly 允許把一個字段設(shè)置成常量,但可以執(zhí)行一些運算,可以確定它的初始值。
因為 readonly 是在計算時執(zhí)行的,當(dāng)然它可以用某些變量初始化。
readonly 是實例成員,所以不同的實例可以有不同的常量值,這使readonly更靈活。
readonly 關(guān)鍵字與 const 關(guān)鍵字不同。
1. const 字段只能在該字段的聲明中初始化。
readonly 字段可以在聲明或構(gòu)造函數(shù)中初始化。因此,根據(jù)所使用的構(gòu)造函數(shù),readonly 字段可能具有不同的值。
2. const 字段是編譯時常數(shù),而 readonly 字段可用于運行時常數(shù)。
3. const 默認(rèn)就是靜態(tài)的,而 readonly 如果設(shè)置成靜態(tài)的就必須顯示聲明。
4.const 對于引用類型的常數(shù),可能的值只能是 string 和 null。
readonly可以是任何類型
總結(jié)
const只能在初期就使用常量初始化好。對于每一次編譯后的結(jié)果,const的值是固定的,而readonly的值是可以在運行的時候才確定值的~~
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
- C#中const和readonly的用法比較
- 淺談Java中的final關(guān)鍵字與C#中的const, readonly關(guān)鍵字
- C#中const 和 readonly 修飾符的用法詳解
- C#中const用法詳解
- 深入探討C#中的const、readonly關(guān)鍵字
- C#基礎(chǔ)知識系列八const和readonly關(guān)鍵字詳細(xì)介紹
- C++中const的實現(xiàn)細(xì)節(jié)介紹(C,C#同理)
- c#.net中const和readonly的區(qū)別
- C#基礎(chǔ):基于const與readonly的深入研究
- C#中 const 和 readonly 的不同
- C# 中const,readonly,static的使用小結(jié)
相關(guān)文章
c#入門之枚舉和結(jié)構(gòu)體使用詳解(控制臺接收字符串以相反的方向輸出)
這篇文章主要介紹了c#入門之枚舉和結(jié)構(gòu)體使用詳解,最后提供了編寫控制臺應(yīng)用程序接收字符串并做相應(yīng)處理的小示例,需要的朋友可以參考下2014-04-04
C#多線程之Thread中Thread.Join()函數(shù)用法分析
這篇文章主要介紹了C#多線程之Thread中Thread.Join()函數(shù)用法,實例分析了Thread.Join()方法的原理與使用技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
C#開發(fā)微信門戶及應(yīng)用(2) 微信消息處理和應(yīng)答
文章主要為大家詳細(xì)介紹了C#開發(fā)微信門戶及應(yīng)用第二篇,微信消息處理和應(yīng)答,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06

