天天看點

const與readonly的差別

const與readonly總結如下:

1.const和readonly在指定初始值以後将可讀不可寫

2.const是編譯時常量,readonly是運作時常量.

是以const隻能在該字段的聲明中初始化,而readonly字段可以在聲明或構造函數中初始化,是以根據構造函數的不同,readonly可能有不同的值

例如:

const int A = B+1;   B如果是一個變量,顯然不能再編譯時就計算出結果,是以常量是不可以用變量來初始化的。
                                     B如果是一個const常量,在編譯的時候就會有一個明确的值,是以這句話就是正确的      

3.const預設是靜态的,是一個對象成員,readonly預設是一個執行個體成員

 const成員是一個類得成員,引用方式為:類.成員   readonly為對象執行個體.成員

static readonly為類成員引用方式:類.成員

4.const對于引用類型來講隻能是String和null,readonly可以是任意的類型

5.const的效率較高,readonly比較靈活