C#对象初始化器是C# 3.0中引入的一种新的语法,它可以用来创建对象并为其成员赋值。它可以极大地简化代码,使得创建对象时更加简单、清晰。
C#对象初始化器的语法如下:
var obj = new ObjectType { Property1 = value1, Property2 = value2, ... };
上面的代码中,ObjectType是要创建的对象的类型,Property1、Property2是要为其赋值的成员变量,value1、value2是要为这些成员变量赋予的值。
使用C#对象初始化器可以大大减少代码量,而且更加直观易懂。例如:
// 利用传统方式来初始化一个Person对象 Person person = new Person(); person.Name = "John"; person.Age = 20; // 利用C#对象初始化器来初始化一个Person对象 Person person = new Person { Name="John", Age=20 };
从上面的例子中可以看出,使用C#对象初始化器可以大大减少代码量,而且更加直观易懂。此外,它还有一些其他优势:
总之,C# 对 象 初 始 化 器 既 简 单 清 晰 ,也 有 许 多 的 优 点 ,因 此 被 许 多 C # 用 户 所 采 用 。
任何可访问的字段或对象的属性可以在构造之后通过对象初始化器直接设置。
例如,考虑下面的类:
public class Person {
public string Name;
public bool IsWorking;
public bool HasChild;
//from ww w . j av a 2 s .c o m
public Person () {}
public Person (string n) {
Name = n;
}
}
使用对象初始化器,您可以如下所示实例化Person对象:
// Note parameterless constructors can omit empty parentheses
Person b1 = new Person { Name="Jack", IsWorking=true, HasChild=false };
Person b2 = new Person ("Jack") { IsWorking=true, HasChild=false };
我们可以使Person的构造函数接受可选参数:
public Person (string name, bool IsWorking = false, bool HasChild = false) {
Name = name;
IsWorking = IsWorking;
HasChild = HasChild;
}
这将允许我们构造一个Person如下:
Person b1 = new Person (name: "Jack", IsWorking: true);
C#布尔类型/运算符C#的bool类型别名System.Boolean类型是一个逻辑值,可以分配文本true或false。我们使用bool类型来表示一个tu...
C# 迭代器 foreach 语句是枚举器的消费者。迭代器是枚举器的生成器。在这个例子中,我们使用迭代器返回一系列斐波纳契数:using ...