在C#中,const和readonly關鍵字都用于聲明常量,但它們之間有一些區別。
const關鍵字用于聲明編譯時常量,其值在編譯時就確定,并且不能在運行時改變。聲明一個const常量時,必須在聲明時進行初始化,并且只能使用基本數據類型、枚舉或字符串類型。const常量在程序的任何地方都可以使用。
以下是const關鍵字的用法示例:
public class MyClass
{
public const int MyConst = 10;
public void MyMethod()
{
const string MyString = "Hello";
// 使用MyConst和MyString
Console.WriteLine(MyConst);
Console.WriteLine(MyString);
}
}
readonly關鍵字用于聲明運行時常量,其值可以在聲明時或構造函數中初始化,并且不能在其他方法或屬性中修改。聲明一個readonly常量時,可以使用基本數據類型、枚舉或引用類型。readonly常量在程序的任何地方都可以使用。
以下是readonly關鍵字的用法示例:
public class MyClass
{
public readonly int MyReadonlyInt;
public readonly string MyReadonlyString;
public MyClass()
{
MyReadonlyInt = 20;
MyReadonlyString = "World";
}
public void MyMethod()
{
// 使用MyReadonlyInt和MyReadonlyString
Console.WriteLine(MyReadonlyInt);
Console.WriteLine(MyReadonlyString);
}
}
總結:
const常量在編譯時確定,只能在聲明時進行初始化,并且不能在運行時修改。
readonly常量在運行時確定,可以在聲明時或構造函數中初始化,并且不能在其他方法或屬性中修改。