C# - Constant 常數

  1. 常數是一種永存於程式中的定值,不會隨著程式的進行而被修改
  2. C# 中有兩種宣告常數的方式,分別是「const」與「readonly」,分別都是加在變數型別前面
  3. 「const」的常數不能同時是 static。

下面的例子是以 const 設定不可修改的 PI 值

1
2
3
4
class Math
{
public const double PI = 3.14;
}

  1. readonly 也可使用 static
1
2
3
4
5
6
class Math
{
public static readonly double PI = 3.14;

}
}
  1. 「readonly」不能在 method 中使用
1
2
3
4
5
6
7
8
9
class Math
{

public void meow()
{

const int a = 10;
}
}

  1. 若在自行撰寫的函式庫內使用到的話,要注意「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 專案才會更新。

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2020 CYC'S BLOG All Rights Reserved.

UV : | PV :