在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关键字用于定义只读字段,其值可以在运行时初始化但初始化后不能修改。