const和readonly的區別

守望陽光01發表於2017-07-22

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效能,所帶來的程式集引用不一致問題; 

相關文章