Collection Initializers——集合初始化器
這一新特性與上述特性基本相同,唯一不同之處在於它作用於集合。對象初始化器功能強大可以幫助開發人員更加容易且簡潔的添加對象到集合中。例如,如果我想添加三個people到一個“Person”類型的generics-based List集合中,我們可以用以下代碼實現:
以下是引用片段:
List people = new List();
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 people = new List ...{
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語句的代碼段一般。
總之,作為開發人員,我們現在擁有更加簡潔的方式來定義對象,初始化他們,然後添加他們到集合。在運行時,它所表達的語義將和今天所書寫的詳細語法一樣正確,因此你不必擔心任何行為上的變化。同時,現在你不必書寫更多的代碼,你的代碼將變得更加簡潔明了。