C#知識系列
//執行期常數
public static readonly int StartValue = 105;
//編譯期常數
public const int EndValue = 120;
兩者差異
1.const只能數字和字串,readonly則是任意型態。
2.const能在方法中使用,readonly不行。(常數不能是宣告在方法裡)
3.const是在編譯時期,readonly是在運行時產生
若今天你改了const的變數值,很直覺的假設修改了常數,並編譯成dll,然
後將dll發佈(將dll檔案copy到.exe相對應資料夾),然後直接執行.exe,會
發現你的參數值還是舊的...要能夠重新編譯你的專案才會更新。
建議偏向執行期常數,而非編譯期常數。
1.const編譯期常數效率快於執行期常數 static readonly
2.static readonly 彈性部分較佳
readonly部分
1.readonly筆者會用class設計中,進行在建構子注入, readonly 在建構子指派值之後,就不能更改。
2.readonly可以在建構子裡面修改。
3.readonly不須提供初始值 readonly可以先定義狀態、在建構子中在賦予值。
元哥的筆記