您好,登錄后才能下訂單哦!
C#中有兩種常量類型,分別為readonly(運行時常量)與const(編譯時常量),本文將就這兩種類型的不同特性進行比較并說明各自的適用場景。
工作原理
readonly為運行時常量,程序運行時進行賦值,賦值完成后便無法更改,因此也有人稱其為只讀變量。
const為編譯時常量,程序編譯時將對常量值進行解析,并將所有常量引用替換為相應值。
下面聲明兩個常量:
public static readonly int A = 2; //A為運行時常量
public const int B = 3; //B為編譯時常量
下面的表達式:
int C = A + B;
經過編譯后與下面的形式等價:
int C = A + 3;
可以看到,其中的const常量B被替換成字面量3,而readonly常量A則保持引用方式。
聲明及初始化
readonly常量只能聲明為類字段,支持實例類型或靜態類型,可以在聲明的同時初始化或者在構造函數中進行初始化,初始化完成后便無法更改。
const常量除了可以聲明為類字段之外,還可以聲明為方法中的局部常量,默認為靜態類型(無需用static修飾,否則將導致編譯錯誤),但必須在聲明的同時完成初始化。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。