淺談c#中const與readonly區(qū)別
const 的概念就是一個(gè)包含不能修改的值的變量。
常數(shù)表達(dá)式是在編譯時(shí)可被完全計(jì)算的表達(dá)式。因此不能從一個(gè)變量中提取的值來初始化常量。
如果 const int a = b+1;b是一個(gè)變量,顯然不能再編譯時(shí)就計(jì)算出結(jié)果,所以常量是不可以用變量來初始化的。
readonly 允許把一個(gè)字段設(shè)置成常量,但可以執(zhí)行一些運(yùn)算,可以確定它的初始值。
因?yàn)?readonly 是在計(jì)算時(shí)執(zhí)行的,當(dāng)然它可以用某些變量初始化。
readonly 是實(shí)例成員,所以不同的實(shí)例可以有不同的常量值,這使readonly更靈活。
readonly 關(guān)鍵字與 const 關(guān)鍵字不同。
1. const 字段只能在該字段的聲明中初始化。
readonly 字段可以在聲明或構(gòu)造函數(shù)中初始化。因此,根據(jù)所使用的構(gòu)造函數(shù),readonly 字段可能具有不同的值。
2. const 字段是編譯時(shí)常數(shù),而 readonly 字段可用于運(yùn)行時(shí)常數(shù)。
3. const 默認(rèn)就是靜態(tài)的,而 readonly 如果設(shè)置成靜態(tài)的就必須顯示聲明。
4.const 對(duì)于引用類型的常數(shù),可能的值只能是 string 和 null。
readonly可以是任何類型
總結(jié)
const只能在初期就使用常量初始化好。對(duì)于每一次編譯后的結(jié)果,const的值是固定的,而readonly的值是可以在運(yùn)行的時(shí)候才確定值的~~
以上所述就是本文的全部內(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ǔ)知識(shí)系列八const和readonly關(guān)鍵字詳細(xì)介紹
- C++中const的實(shí)現(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#實(shí)現(xiàn)文件上傳及文件下載功能實(shí)例代碼
文件上傳文件下載需求在項(xiàng)目中經(jīng)常會(huì)遇到,今天小編給大家分享C#實(shí)現(xiàn)文件上傳及文件下載功能實(shí)例代碼,需要的朋友參考下吧2017-08-08C#實(shí)現(xiàn)模擬ATM自動(dòng)取款機(jī)功能
這篇文章介紹了C#實(shí)現(xiàn)模擬ATM自動(dòng)取款機(jī)功能的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08C#?WinForm?RichTextBox文本動(dòng)態(tài)滾動(dòng)顯示文本方式
這篇文章主要介紹了C#?WinForm?RichTextBox文本動(dòng)態(tài)滾動(dòng)顯示文本方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03