1. 程式人生 > >const和readonly的區別

const和readonly的區別

編譯器優化 時也 定義 不足 bsp mce 包括 優化 運行

1.const、readonly和static readonly定義的常量,指定初始值後(包括在構造函數內指定的初始值) 將不可更改,可讀不可寫;
2.const定義時必 須指定初始值,而readonly定義時可以不進行初始化(MS建議在定義時初始值),同時也可以在構造函數內指定初始值,並以構造函數內指定的值為準;

3.const和static readonly定義的常量是靜態的,只能由類直接訪問;而readonly定義的常量是非靜態 的,只能由實例對象訪問;

4.static readonly常量,如果在構造函數內指定初始值,則必須是靜態無參構造函數;
5.const是編譯時常量,readonly是運行時常量;cosnt較高效,readonly較靈活。在應用上以static readonly代替const,以平衡const在靈活性上的不足, 同時克服編譯器優化cosnt性能,所帶來的程序集引用不一致問題;

const和readonly的區別