init关键字
在 C# 9.0 中引入的 init 关键字用于修饰属性的 setter(初始化器),它的核心作用是允许属性在对象初始化时被赋值,但初始化后不可修改,平衡了对象的可初始化性和不可变性。
init 修饰的属性只能在对象创建时(通过对象初始化器、构造函数)赋值,对象创建完成后无法再修改,类似 “只读但可在初始化时灵活设置” 的效果。
readonly字段只能在声明时或构造函数中赋值,无法通过对象初始化器设置。init属性可通过对象初始化器赋值,且保持了属性的封装性(字段通常是私有或内部的)。