var emp = new Employee();
emp.Id = 1;
emp.Name = "藍之風";
emp.Age = 24;
emp.BirthDate = "1984-10-21";
emp.Sex = "男";
var emp = new Employee
{
Id = 1,
Name = "藍之風",
Age = 24,
BirthDate = "1984-10-21",
Sex = "男"
};
優勢:單語句完成構造與賦值、屬性順序任意、可選賦值部分屬性、支持巢狀初始化。
// 編譯器生成
var emp = new Employee();
emp.Id = 1;
emp.Name = "藍之風";
// ... 其餘屬性賦值
本質是編譯器幫你寫樣板代碼,無運行期開銷。
ICollection<T>Add 方法
// List
var numbers = new List { 1, 2, 3, 4, 5 };
// 巢狀對象初始化
var classes = new List
{
new ClassRoom
{
Name = "Science",
Students = new List { "Laura", "George" }
},
new ClassRoom
{
Name = "Commerce",
Students = new List { "Bill", "Hillary" }
}
};
var classes = new List();
var c1 = new ClassRoom { Name = "Science" };
c1.Students.Add("Laura");
c1.Students.Add("George");
classes.Add(c1);
// ... 同理 c2
ICollection<T> 的類型(如 ArrayList)不可用Add 方法,不支持 AddRange 等批量操作對象/集合初始化器將「構造 + 多行賦值」壓縮為「聲明式單表達式」,編譯器負責展開,代碼可讀性質變。配合 var、匿名類型、擴展方法,構成 C# 3.0 聲明式編程風格的基石,為 LINQ 查詢表達式鋪平道路。