readonly和Const注意一點

2021-10-24 01:55:27 字數 364 閱讀 7741

const:要求編譯時常量,所以不能跟new,其實也是static的;可以定義欄位和區域性變數

static readonly :執行時常量,可在靜態構造中進行賦值;只能字段

const 常量,在編譯時寫入元資料中,如果定義在另乙個dll中常量,一旦改變則必須更新被引用dll,且重新編譯當前dll。在使用enum型別是也是具有該問題。

示例:

private static readonly string _rda;

private const float pi = 3.14f;

static program()

const 和 readonly 的區別

const 和 readonly 的區別,總是不太清楚,於是查了查資料。const 的概念就是乙個包含不能修改的值的變數。常數表示式是在編譯時可被完全計算的表示式。因此不能從乙個變數中提取的值來初始化常量。如果 const int a b 1 b是乙個變數,顯然不能再編譯時就計算出結果,所以常量是不...

readonly 和const的區別

const 的概念就是乙個包含不能修改的值的變數。常數表示式是在編譯時可被完全計算的表示式。因此不能從乙個變數中提取的值來初始化常量。如果 const int a b 1 b是乙個變數,顯然不能再編譯時就計算出結果,所以常量是不可以用變數來初始化的。readonly 允許把乙個字段設定成常量,但可以...

Const和ReadOnly的區別

1.const 和readonly 都是用來表示常量的。2.初始化賦值不同 a const 必須在宣告的時候即賦值。b readonly 可以在初始化的過程中賦值。在其他地方賦值,編譯器會報錯。因此,根據所使用的建構函式,readonly 字段可以具有不同的值。3.const 是編譯時常數,而 re...