[From 10.1~10.5] 对象和集合初始化器(C#语法糖系列)
经常要构造一个对象并设置对象的一些公众属性(或字段)。
1.为了简化这个常见的编程模式,C#语言支持一种特殊的对象初始化语法。下面是一个例子:
Employee e = new Employee(){ Name = "Jeff",Age = 45};
2.如果属性的类型实现了IEnumerable或IEnumerable<T>接口,属性就被认为是集合,而集合的初始化是一种相加(additive)操作,而非替换(replacement)操作。例如,假定有下面这个类定义:
public sealed class Classroom{
private List<String> m_students = new List<String>();
public List<String> Students {get{return m_studentsl}}
public Classroom(){};
}
注意:如果属性的类型实现了IEnumerable或IEnumerable<T>,但未提供Add方法,编译器就不允许使用集合初始化向集合种添加数据项。