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...