[C#] Const 與 ReadOnly 關鍵字
const :
- 僅可以在該欄位宣告時初始化。
- 編譯時期常數。
readonly:
- 可以在宣告或是在建構函式中初始化,會根據使用的建構函式而產生不同值。
- 可當做執行階段常數使用。
做個小小實驗來看看兩者的差異
先建立一個類別庫的專案 SampleTest,加上一個SampleClass.cs
SampleClass.cs
{
public class SampleClass
{
// Const
public const int intConst = 10;
// ReadOnly
public readonly int intReadOnly = 12;
}
}
建置SampleTest專案,產生SampleTest.dll,給主程式參考引用
主程式
{
public Form1()
{
InitializeComponent();
SampleClass sc = new SampleClass();
// Const
textBox1.Text = SampleClass.intConst.ToString();
// ReadOnly
textBox2.Text = sc.intReadOnly.ToString();
}
}
編譯主程式後產生結果
如果修改了 SampleClass.cs的Const與ReadOnly值,編譯後給主程式引用
{
public class SampleClass
{
// Const
public const int intConst = 20;
// ReadOnly
public readonly int intReadOnly = 22;
}
}
執行主程式結果
這時只改變了ReadOnly的結果,因為ReadOnly是可以當執行階段常數使用
如果再重新編譯主程式,就可以改變Const的結果~
以上~謝謝
新手發文請多多指教 ^_____^