初始化器分为对象初始化器和集合初始化器。下面一一介绍。
对象初始化器
对象初始化器的作用,简单点说就是可以使我们初始化一个类的代码变得更简洁。比如下面这个类:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
我们要初始化它并对它赋值的话通常要这样:
Person person = new Person();
person.Name = “Slark”;
person.Age = 100;
person.Address = “Xi’an”;
这里我们用了一行创建对象语句,加三行赋值语句。这里光person这个变量就出现了4遍,繁琐。用对象初始化器来代替这些操作:
Person person = new Person { Name = “Slark”, Age = 100, Address = “Xi’an” };
同样的效果,对象初始化器只用了一行,简洁!可以看到对象初始化器将创建对象和赋值合为一行,其中赋值就是在后面大括号里做的。这里的赋值可以给所有属性赋值,也可以给部分属性赋值。
集合初始化器
既然要讲集合初始化器,那么我们就先来创建一个集合:
List intList = new List();
intList.Add(1);
intList.Add(2);
intList.Add(3);
好,这里我们用4行代码创建了一个3个元素的集合。集合初始化器的出现大大减少了我们对这种操作的代码量。其对应的集合初始化器代码为:
List intList = new List { 1, 2, 3 };
嗯,真的少写了很多。集合初始化器的原理也很简单,就是它默默的为我们调用了List的Add方法依次为我们添加了这3个元素。
这里我们再给一个综合运用集合初始化器和对象初始化器的例子:
List personList = new List
{
new Person { Name = “Slark1”, Age = 101, Address = “Xi’an1” },
new Person { Name = “Slark2”, Age = 102, Address = “Xi’an2” },
new Person { Name = “Slark3”, Age = 103, Address = “Xi’an3” }
};
代码里用集合初始化器初始化了personList,然后用对象初始化器初始化了3个Person对象实例。