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

在C#中,const 和 readonly 都可用于定义不可变的值,但它们在使用方式、生命周期和适用场景上有本质区别。理解这些差异有助于写出更安全、高效的代码。
const 用于声明编译时常量,其值必须在编译时就能确定,并且一旦定义就不能更改。
例如:
public const int MaxCount = 100; public const string AppName = "MyApp";
readonly 字段的值可以在声明时或构造函数中赋值,之后不能再修改,适用于运行时才能确定的值。
例如:
public readonly DateTime CreatedTime;
public readonly List<string> Tags;
public MyClass()
{
CreatedTime = DateTime.Now;
Tags = new List<string> { "default" };
}选择哪个取决于具体需求:如果值固定且简单,优先用 const;如果需要运行时初始化或使用复杂类型,应使用 readonly。
基本上就这些。
以上就是C#中const和readonly有什么不同 - 定义不可变常量的两种方式的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号