對象集合初始化器
一. 介紹
(1)對象初始化
如果一個類有public欄位,在建立類的對象執行個體時可以使用下面的代碼來初始化這些欄位;
public class PersonInfo
{
public string id;
public string name;
public string description;
}
PersonInfomy = new PersonInfo();
my.id= “9527”;
my.name = "Jack Dong";
my.description = "I am a Software Engineer";
在C#3.0中提供了一種更簡便的方法來初始化這些public變數,代碼如下:
PersonInfomy = new PersonInfo
{
id = “9527”,
name = "Jack Dong";
description = "I am a Software Engineer";
};
上面的代碼的寫法有些象帶參數的構造方法,但這將並不是調用了PersonInfo的構造方法(因為PersonInfo並沒有帶三個參數的構造方法),
而只是C#編譯器玩的一個魔術。實際上,上面的代碼在編譯後,仍然和使用傳統的初始化欄位的方法一樣。只是在文法上看起來更簡單(至少不
用寫那麼多個my)。
(2)集合初始化
集合初始化,不需通過ADD方法,以前比如構造個List,都要一個個現在就不用了 .
在C#3.0中改進了對集合類的初始化方式(使其初始化的方式類似於數組)。但遺憾的是,這種初始化方式只支援用泛型的集合類,也就是說,
只有實現了System.Collections.Generic. Cllection<T>的集合類才可以使用這種初始化方法。代碼如下:
List<string> myList = new List<string> { "a", "b", "c" };
foreach (string str myList)
{
textBox1.AppendText(str);
}
二. 注意點
使用這種方法進行對象初始化,必須是public的欄位(不能是protected、private或預設修飾符的欄位)。