

新闻资讯
技术学院const是编译时常量,值必须在声明时确定且仅支持基本类型和enum;readonly是运行时常量,可在构造函数中赋值,支持任意类型,可为实例成员。
在C#中,const 和 readonly 都可用于定义不可变的值,但它们在使用方式、生命周期和适用场景上有本质区别。理解这些差异有助于写出更安全、高效的代码。
const 用于声明编译时常量,其值必须在编译时就能确定,并且一旦定义就不能更改。
例如:
public const int MaxCount = 100; public const string AppName = "MyApp";
readonly 字段的值可以在声明时或构造函数中赋值,之后不能再修改,适用于运行时才能确定的值。
例如:
public readonly DateTime CreatedTime; public readonly ListTags; public MyClass() { CreatedTime = DateTime.Now; Tags = new List { "default" }; }
readonly 是真正的字段,有存储和访问成本。选择哪个取决于具体需求:如果值固定且简单,优先用 const;如果需要运行时初始化或使用复杂类型,应使用 readonly。
基本上就这些。