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