C# 中只读属性的设置
只读属性允许类获取值,但无法对其进行修改。它们在以下场景中很有用:
封装敏感数据:保护对关键数据的意外更改。 提供状态表示:公开内部状态信息,而不允许外部修改。 隐藏计算结果:公开基于其他属性计算的值,而无需公开计算本身。语法
只读属性使用
get;访问器声明,如下所示:
<code class="csharp">public class MyClass
{
public int Id { get; private set; }
}</code>使用
只读属性可以通过类实例的点运算符 (.) 访问其值:<code class="csharp">MyClass obj = new MyClass(); int id = obj.Id;</code>无法通过赋值操作符 (=) 修改只读属性的值:
<code class="csharp">// 会导致编译时错误 obj.Id = 10;</code>
私有设置器
可以使用私有
set访问器提供只读属性的初始值或通过构造函数进行初始化:
<code class="csharp">public class MyClass
{
private int _id;
public int Id { get; private set; }
public MyClass(int id)
{
_id = id; // 使用私有 set 访问器设置初始值
}
}</code>注意事项
只读属性可以通过反射进行修改,但这不是推荐的做法。 使用只读属性可以提高代码的安全性、可维护性和可读性。 应谨慎使用只读属性,以确保数据的完整性和一致性。