常數 (readonly 與 const)
參考: http://www.dotblogs.com.tw/yc421206/archive/2011/06/06/27232.aspx
readonly 為執行階段常數
Ex: public static readonly int Start = 0;
const 為編譯時期常數
Ex: public const int End = 10;
兩種方式有相同的意義但背卻有不同的運作行為,使用不當的話可能會造成一些問題發生,我們在定義常數的時候會建議使用 readonly 而不是 const,雖然說使用 const 的效能比使用 static readonly 效能好一些,但是整體的靈活性及方便性都是 static readonly 勝出的。
兩者差異:
1.const 僅能用於數字和字串,而readonly可以是任意型態。
2.const能在方法中使用,readonly不行。(常數不應該是宣告在方法裡)
3.const 是在編譯時期產生的,readonly是在運行時產生的
順帶一提, Java 的 final 關鍵字是編譯器在編譯時期就"確定" final variable 所記錄的值是什麼