C#中const和readonly有什么不同 - 定义不可变常量的两种方式

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

C#中const和readonly有什么不同 - 定义不可变常量的两种方式-第1张图片-佛山资讯网

在C#中,constreadonly 都可用于定义不可变的值,但它们在使用方式、生命周期和适用场景上有本质区别。理解这些差异有助于写出更安全、高效的代码。

const:编译时常量

const 用于声明编译时常量,其值必须在编译时就能确定,并且一旦定义就不能更改。

  • 只能用于基本数据类型(如 int、string、double)、enum 类型或 null 引用类型。
  • 值必须在声明时赋值,不能在构造函数或其他地方设置。
  • 属于类级别,隐式静态,访问时不需要实例对象。
  • 在编译时会被直接替换为对应的字面值,不占用运行时内存空间。

例如:

public const int MaxCount = 100;
public const string AppName = "MyApp";

登录后复制

readonly:运行时常量

readonly 字段的值可以在声明时或构造函数中赋值,之后不能再修改,适用于运行时才能确定的值。

标签: c# readonly app 区别

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~