const是编译时常量,值必须在声明时确定且仅支持基本类型和enum;readonly是运行时常量,可在构造函数中赋值,支持任意类型,可为实例成员。

在C#中,const 和 readonly 都可用于定义不可变的值,但它们在使用方式、生命周期和适用场景上有本质区别。理解这些差异有助于写出更安全、高效的代码。
const:编译时常量
const 用于声明编译时常量,其值必须在编译时就能确定,并且一旦定义就不能更改。
- 只能用于基本数据类型(如 int、string、double)、enum 类型或 null 引用类型。
- 值必须在声明时赋值,不能在构造函数或其他地方设置。
- 属于类级别,隐式静态,访问时不需要实例对象。
- 在编译时会被直接替换为对应的字面值,不占用运行时内存空间。
例如:
public const int MaxCount = 100; public const string AppName = "MyApp";
登录后复制
readonly:运行时常量
readonly 字段的值可以在声明时或构造函数中赋值,之后不能再修改,适用于运行时才能确定的值。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~