Const和ReadOnly的區別

2021-05-17 16:14:40 字數 822 閱讀 4463

1.

const

和readonly

都是用來表示常量的。

2.初始化賦值不同

a)const

必須在宣告的時候即賦值。

b)readonly

可以在初始化的過程中賦值。在其他地方賦值,編譯器會報錯。因此,根據所使用的建構函式,

readonly

字段可以具有不同的值。

3.const

是編譯時常數,而

readonly

欄位可用於執行時常數。

a)const

要求編譯器能夠在編譯時就計算確定的值。而在編譯的時候,用計算出確定值去替換該使用該常量的每乙個地方,因此不能從乙個變數中提取值來初始化常量。

b)readonly

允許把乙個字段設定成為常量,但可以執行一些計算,可以確定它的初始化值。因為

readonly

是計算時執行的,在執行時才確定的值。

c)const

預設就是靜態的,但

readonly

如果設定成為靜態的就必須顯示宣告。

d)const

修飾的型別是比較簡單的,而

readonly

可以是任意型別的。

e)object

,array,struct

不能被宣告為

const

常量。const

和static readonly

,在某些場合是可以替換的,本質上是常量但是無法使用

const

來宣告的地方,可以使用

static readonly

來替換。

const 和 readonly 的區別

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

readonly 和const的區別

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

const和readonly的區別

這同樣是乙個面試的基礎題。可以看看學習下哦 readonly關鍵字與const關鍵字的區別 1 const字段只能在該字段的宣告中初始化。readonly字段可以在宣告或建構函式中初始化。因此,根據所使用的建構函式,readonly字段可能具有不同的值。2 const欄位是編譯時常數,而readon...