【IT168技术评论】
3、Collection Initializers——集合初始化器
这一新特性与上述特性基本相同,唯一不同之处在于它作用于集合。对象初始化器功能强大可以帮助开发人员更加容易且简洁的添加对象到集合中。例如,如果我想添加三个people到一个"Person"类型的generics-based List集合中,我们可以用以下代码实现:
List<Person> people = new List<Person>();
![]()
people.Add( new Person ...{ FirstName = "Scott", LastName = "Guthrie", Age = 32 } );
people.Add( new Person ...{ FirstName = "Bill", LastName = "Gates", Age = 50 } );
people.Add( new Person ...{ FirstName = "Susanne", LastName = "Guthrie", Age = 32 } );
![]()
在这个例子中仅使用新的对象初时化器特性一条,和C# 2.0编译器相比我们就省去12条额外代码的编写。
C# and VB "Orcas"编译器不仅使我们在对象的声明和初始化方面更加简单,而且支持"collection initializers"可以使我们避免成倍的Add语句,同时节省更多的击键次数:
List<Person> people = new List<Person> ...{
new Person ...{ FirstName = "Scott", LastName = "Guthrie", Age = 32 },
new Person ...{ FirstName = "Bill", LastName = "Gates", Age = 50 },
new Person ...{ FirstName = "Susanne", LastName = "Guthrie", Age = 32 }
};
当编译器遇到如上语法,它将自动产生集合插入代码,就像如上所示拥有更详尽Add语句的代码段一般。
总之,作为开发人员,我们现在拥有更加简洁的方式来定义对象,初始化他们,然后添加他们到集合。在运行时,它所表达的语义将和今天所书写的详细语法一样正确,因此你不必担心任何行为上的变化。同时,现在你不必书写更多的代码,你的代码将变得更加简洁明了。
