.NET3.0 对象初始化器
开始用3.0的特性了,感觉很多东西都不是想象中的那么好用。当中最郁闷的当属用Linq的更新数据了,不过今天想说说对象初始化器,呵呵。
其实对象初始化器一个比较大的作用就是减少了代码的书写数量,把一些原本应该人做的事情交给了框架。
例如:我们有个Person类
public class Person
{
public string Name { get; set; }
public string ID { get; set; }
public Person()
{
}
}
2.0的代码:{
public string Name { get; set; }
public string ID { get; set; }
public Person()
{
}
}
Person firstPerson = new Person();
firstPerson.Name = "FirstPeron";
firstPerson.ID = "1";
3.0的代码:
firstPerson.Name = "FirstPeron";
firstPerson.ID = "1";
new Person{Name="FirstPerson",ID="1"},
3.0Reflector的代码:Person类的Name属性:
public string Name
{
[CompilerGenerated]
get
{
return this.<Name>k__BackingField;
}
[CompilerGenerated]
set
{
this.<Name>k__BackingField = value;
}
}
实例化Person的代码:{
[CompilerGenerated]
get
{
return this.<Name>k__BackingField;
}
[CompilerGenerated]
set
{
this.<Name>k__BackingField = value;
}
}
Person <>g__initLocal1 = new Person();
<>g__initLocal1.Name = "FirstPerson";
<>g__initLocal1.ID = "1";
我们可以看到实际的代码量并没有减少。
<>g__initLocal1.Name = "FirstPerson";
<>g__initLocal1.ID = "1";
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名孙镜涛(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言。