init访问器是C# 9.0引入的仅限对象初始化阶段使用的属性设置器,支持在对象初始化器中为只读属性赋值,之后不可修改,增强不可变性,适用于DTO、record等场景。

init访问器是 C# 9.0 引入的一种特殊属性设置器,用于在对象初始化期间为只读属性赋值,之后该属性便不能再被修改。它解决了以往只读属性(即仅有 set 的私有或无设置器的属性)无法在对象初始化器中设置的问题。
什么是 init 访问器?
在 C# 9.0 之前,如果一个属性只有 get 没有 set,就不能在对象初始化器中赋值:
{
public string Name { get; private set; } // 或者没有 set
}
// 以下代码会报错:
var person = new Person { Name = "Alice" }; // 错误:Name 不能在此处设置
有了 init 访问器后,你可以这样写:
public class Person{
public string Name { get; init; }
}
// 现在可以正常初始化:
var person = new Person { Name = "Alice" }; // 成功!
这个 init 访问器只允许在对象创建时通过对象初始化器设置一次,之后就无法再修改,即使在类内部也不行(除非通过构造函数等其他方式)。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~