在C#中,const和readonly關鍵字用于定義常量和只讀字段。
const關鍵字用于定義編譯時常量,它的值在聲明時必須被初始化,并且不能再被修改。常量在編譯時就會被計算,因此它們在程序運行時是不可修改的。
以下是const關鍵字的使用示例:
public class MyClass
{
//定義常量
public const int MyConstant = 10;
//編譯時常量
public const string MyCompileTimeConstant = "Hello";
//錯誤示例,常量必須在聲明時初始化
public const int MyInvalidConstant;
//錯誤示例,常量不能被修改
public void UpdateConstant()
{
MyConstant = 20; //錯誤,常量不能被修改
}
}
readonly關鍵字用于定義只讀字段,它的值可以在運行時初始化,但一旦被初始化后就不能再被修改。只讀字段的值可以通過構造函數或初始化器進行初始化。
以下是readonly關鍵字的使用示例:
public class MyClass
{
//定義只讀字段
public readonly int MyReadOnlyField;
//構造函數初始化只讀字段
public MyClass(int value)
{
MyReadOnlyField = value;
}
//錯誤示例,只讀字段不能被修改
public void UpdateField()
{
MyReadOnlyField = 20; //錯誤,只讀字段不能被修改
}
}
總結:const關鍵字用于定義編譯時常量,其值在聲明時被初始化且不能修改。readonly關鍵字用于定義只讀字段,其值可以在運行時初始化但初始化后不能修改。