- 常數是一種永存於程式中的定值,不會隨著程式的進行而被修改
- C# 中有兩種宣告常數的方式,分別是「const」與「readonly」,分別都是加在變數型別前面
- 「const」的常數不能同時是 static。
下面的例子是以 const 設定不可修改的 PI 值
1 | class Math |
- readonly 也可使用 static
1 | class Math |
- 「readonly」不能在 method 中使用
1 | class Math |
- 若在自行撰寫的函式庫內使用到的話,要注意「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 專案才會更新。