C#對象初始化器描述
C#新語言特性有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#對象初始化器,包括介紹基于泛型的類型為User的List集合等方面。
C#對象初始化器 (Object Initializers) :
.NET2.0框架中的類型非常依賴于屬性。當(dāng)生成對象實(shí)例和使用新的類型時(shí),在.Net2.0時(shí)候我們像這樣寫:
- User user = new User();
 - user.Id = 1;
 - user.Name = "YJingLee";
 - user.Age = 22;
 
在VS2008中,編譯器會(huì)自動(dòng)地生成合適的屬性setter代碼,使得原來幾行的屬性賦值操作可以在一行完成。我們可以這樣簡化:像這樣,對象初始化器由一系列成員對象組成,其對象必須初始化,用逗號(hào)間隔,使用{}封閉。
- User user = new User { Id = 1, Name = "YJingLee", Age = 22 };
 
又例如,我把二個(gè)人加到一個(gè)基于泛型的類型為User的List集合中:
- List<User> user = new List<User>{
 - new User{Id=1,Name="YJingLee",Age=22},
 - new User{Id=2,Name="XieQing",Age=25},
 - };
 

如果有相同名字和類型的兩個(gè)對象初始化器將會(huì)產(chǎn)生相同的實(shí)例,可以相互賦值。例如:
- User user = new User { Id = 1, Name = "YJingLee", Age = 22 };
 - User user2 = new User { Id = 2, Name = "XieQing", Age = 25 };
 - user = user2;
 
除了在初始化類時(shí)設(shè)置簡單的屬性值外,C#對象初始化器特性也允許我們設(shè)置更復(fù)雜的嵌套(nested)屬性類型。例如我們可以在上面定義的User類型同時(shí)擁有一個(gè)屬于Address類型的叫“Address”的屬性:
- User user = new User
 - {
 - Id = 1,
 - Name = "YJingLee",
 - Age = 22,
 - Address = new Address
 - {
 - City = "NanJing",
 - Zip = 21000
 - }
 - };
 
【編輯推薦】















 
 
 
 
 
 
 