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比較靈活