Object Initializers——對象初始化器
本初始化器可以促進編譯器自動生成property setter代碼,由此可為用戶省略了幾行硬代碼的編寫。.Net Framework中的Types依賴於propertIEs的使用。在初始化和使用一個新類時,開發人員通常要寫出如下代碼:
以下是引用片段:
Person person = new Person();
person.FirstName = "Scott";
person.LastName = "GuthrIE";
person.Age = 32;
你是否曾經想過使這一代碼變得更加簡潔,也許只用一行就可以實現?使用C# 和VB “Orcas”編譯器,你可以充分利用名為“object Initializers”的“syntactic sugar”語言特征使以上代碼簡化如下:
以下是引用片段:
Person person = new Person ...{ FirstName="Scott", LastName="GuthrIE", Age=32 };
編譯器將會自動產生合適的property setter代碼來保持與上述詳細代碼段同樣的語義。
對象初始化器不僅可在初時化類型時設置簡單的屬性值,而且允許我們隨意設置更復雜嵌套的屬性類型。比如,假設我們上述定義的每個Person類型均有一個“Address”類型的Address屬性。我們可以用如下代碼來創建Person對象並設置其屬性:
以下是引用片段:
Person person = new Person ...{
FirstName = "Scott",
LastName = "GuthrIE"
Age = 32,
Address = new Address ...{
Street = "One Microsoft Way",
City = "Redmond",
State = "WA",
Zip = 98052
}
};