C# init 访问器详解
学习C# init-only 属性,实现对象初始化器后的不可变性 · 难度:入门 · +15XP
init 访问器概述
C# 9 引入的 init 访问器允许属性在对象初始化期间被设置,之后变为只读。这结合了可变初始化和不可变使用的优点。
语法
public class Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
}使用方式
var person = new Person { FirstName = "Alice", LastName = "Smith" };
// person.FirstName = "Bob"; // 编译错误与 readonly 字段对比
| 特性 | init | readonly 字段 |
|---|---|---|
| 初始化方式 | 构造函数或初始化器 | 构造函数 |
| 对象初始化器 | 支持 | 不支持 |
| 使用场景 | DTO、配置 | 常量数据 |
💡 练习提示:创建一个带有 init 属性的类,在构造函数中验证输入,然后尝试在初始化后修改属性。