溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

static readonly與const的區(qū)別!

發(fā)布時(shí)間:2020-06-16 16:08:34 來(lái)源:網(wǎng)絡(luò) 閱讀:430 作者:liky1986 欄目:編程語(yǔ)言
  • C#中有兩種常量類型,分別為readonly(運(yùn)行時(shí)常量)與const(編譯時(shí)常量),本文將就這兩種類型的不同特性進(jìn)行比較并說(shuō)明各自的適用場(chǎng)景。  

  • 工作原理  

  • readonly為運(yùn)行時(shí)常量,程序運(yùn)行時(shí)進(jìn)行賦值,賦值完成后便無(wú)法更改,因此也有人稱其為只讀變量。  

  • const為編譯時(shí)常量,程序編譯時(shí)將對(duì)常量值進(jìn)行解析,并將所有常量引用替換為相應(yīng)值。  

  •    下面聲明兩個(gè)常量:  

  • public static readonly int A = 2; //A為運(yùn)行時(shí)常量

  • public const int B = 3; //B為編譯時(shí)常量

  • 下面的表達(dá)式:  

  • int C = A + B;  

  • 經(jīng)過(guò)編譯后與下面的形式等價(jià):  

  • int C = A + 3;  

  • 可以看到,其中的const常量B被替換成字面量3,而readonly常量A則保持引用方式。  

  • 聲明及初始化  

  • readonly常量只能聲明為類字段,支持實(shí)例類型或靜態(tài)類型,可以在聲明的同時(shí)初始化或者在構(gòu)造函數(shù)中進(jìn)行初始化,初始化完成后便無(wú)法更改。  

  • const常量除了可以聲明為類字段之外,還可以聲明為方法中的局部常量,默認(rèn)為靜態(tài)類型(無(wú)需用static修飾,否則將導(dǎo)致編譯錯(cuò)誤),但必須在聲明的同時(shí)完成初始化。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI