当前位置: 首页 > 编程语言 > C# > 正文

Orcas版C# 3.0新特性(2)

时间:2007-11-04 Scott Guthrie

Object Initializers——对象初始化器

本初始化器可以促进编译器自动生成property setter代码,由此可为用户省略了几行硬代码的编写。.NET Framework中的Types依赖于properties的使用。在初始化和使用一个新类时,开发人员通常要写出如下代码:

以下是引用片段:

Person person = new Person();
person.FirstName = "Scott";
person.LastName = "Guthrie";
person.Age = 32;

你是否曾经想过使这一代码变得更加简洁,也许只用一行就可以实现?使用C# 和VB “Orcas”编译器,你可以充分利用名为“object Initializers”的“syntactic sugar”语言特征使以上代码简化如下:

以下是引用片段:

Person person = new Person ...{ FirstName="Scott", LastName="Guthrie", Age=32 };

编译器将会自动产生合适的property setter代码来保持与上述详细代码段同样的语义。

对象初始化器不仅可在初时化类型时设置简单的属性值,而且允许我们随意设置更复杂嵌套的属性类型。比如,假设我们上述定义的每个Person类型均有一个“Address”类型的Address属性。我们可以用如下代码来创建Person对象并设置其属性:

以下是引用片段:

Person person = new Person ...{
FirstName = "Scott",
LastName = "Guthrie"
Age = 32,
Address = new Address ...{
Street = "One Microsoft Way",
City = "Redmond",
State = "WA",
Zip = 98052
}
};