在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常量在运行时确定,可以在声明时或构造函数中初始化,并且不能在其他方法或属性中修改。