【C#】 定義常數時readonly好還是const好
/
0 Comments
以前一直弄不清楚const和readonly究竟有什麼不同,這次就把這個問題弄清楚並且記錄一下。
簡單的定義如下:
readonly為執行階段常數
public static readonly int Start = 0;
const為編譯時期常數
public const int End = 10;
兩種方式有相同的意義但背卻有不同的運作行為,使用不當的話可能會造成一些問題發生。
差異:
1.const僅能用於數字和字串,而readonly可以是任意型態。2.const能在方法中使用,readonly不行。(常數不應該是宣告在方法裡)
3.const是在編譯時期產生的,readonly是在運行時產生的
若今天你改了const的參數值,很直覺的我只修改了常數並編譯成dll,然後將dll發佈(將dll檔案copy到.exe相對應資料夾),然後直接執行.exe,會發現你的參數值還是舊的! 必須重新編譯你的exe專案才會更新。