在C#中,const
和readonly
都用于创建常量,但它们有一些重要的区别。以下是详细讲解以及相应实例代码。
const
关键字用于创建编译时常量,必须在声明时初始化。class Program
{
// 编译时常量
const int ConstValue = 10;
static void Main()
{
Console.WriteLine(ConstValue);
}
}
readonly
关键字用于创建运行时常量,可以在构造函数中初始化。readonly
通常用于表示在类的实例生命周期内保持不变的值。class Program
{
// 运行时常量
readonly int ReadOnlyValue;
// 构造函数中初始化
public Program()
{
ReadOnlyValue = 20;
}
static void Main()
{
Program program = new Program();
Console.WriteLine(program.ReadOnlyValue);
}
}
const
当你有一个编译时就可以确定的常量值。readonly
当你有一个在运行时确定的常量值,尤其是在构造函数中初始化。const
用于编译时常量,readonly
用于运行时常量。选择使用哪个关键字取决于常量值何时可知。