LINQ学前准备之对象集合初始化器
对象初始化器为我们提供了更加简洁和方便的对象初始化方法。
假设我们有一个对象Address需要初始化,我们的代码可能是这样的:
#region Address Class
public class Address
{
public string City{get;set;}
public string State{get;set;}
public string ZipCode{get;set;}
}
#endregion#region Initial Address Address address = new Address(); address.City = "New York"; address.Staty = "NY"; address.ZipCode = "10016"; #endregion
显然,如果将这种初始化方法应用于LINQ中是极为不方便且不优雅的。
因此微软提供了对象初始化器:
#region
Address address = new Address{
City="New York",
State="NY",
ZipCode="10016"
};
#endregion同样的,对于集合初始化器也采用了类似的方法:
List<string> citys = new List<string>{“New York”,"Beijing”};其实,如果我们反编译代码,就会发现,当我们用对象初始化器来初始化对象的时候,C#编译器依旧会生成一个Address类型的局部变量,并调用Address的无参构造函数来初始化他,然后再对其属性进行赋值操作,最后返回这个变量。因此,我们提供的Address必须有一个无参构造函数。

浙公网安备 33010602011771号