当我们声明一个类时,经常需要为该类的字段或属性提供一个初始值,以确保在对象创建后这些值处于可用状态。在C# 9.0中,新特性“只初始化设置器”(init-only setters)允许我们在对象创建后,通过只读属性的方式对属性进行初始化。
什么是只初始化设置器
只初始化设置器(init-only setters)是C# 9.0中新出现的特性,只初始化设置器允许我们将某个属性的setter访问器定义为只读(init),从而在对象创建后,只允许通过构造函数或对象初始化器对该属性进行初始化操作。这样可以使得我们的代码更加健壮,同时也便于代码的维护和管理。
示例说明一
接下来,我们通过一个示例来演示只初始化设置器的使用方法。
public class Person
{
public string Name { get; init; }
public int Age { get; init; }
}
在上述代码中,我们声明了一个Person类,并定义了两个只读属性Name和Age,它们的setter被定义为init
。这意味着在Person对象创建之后,我们无法再修改它们的值。现在我们来创建一个Person对象,并对这两个属性进行初始化。
Person person = new Person
{
Name = "Tom",
Age = 20
};
通过对象初始化器,我们可以按照Name和Age的顺序对属性进行初始化。由于这两个属性的setter被定义为只读,所以我们无法再使用person.Name和person.Age来修改它们的值。
示例说明二
我们也可以在构造函数中初始化只初始化设置器。接下来,我们通过一个示例来演示这种方法。
public class Person
{
public string Name { get; init; }
public int Age { get; init; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
在上述代码中,我们声明了一个构造函数,并在构造函数中对Name和Age属性进行初始化。下面是调用构造函数的示例。
Person person = new Person("Tom", 20);
通过构造函数,我们可以对属性进行初始化,而且一旦对象创建之后,无法再修改它们的值。
总结
只初始化设置器是C# 9.0中新出现的特性,它允许我们将某个属性的setter访问器定义为只读(init),从而在对象创建后,只允许通过构造函数或对象初始化器对该属性进行初始化操作。这样可以使得我们的代码更加健壮,同时也便于代码的维护和管理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 9.0新特性——只初始化设置器 - Python技术站