這是無意中發現的一個語法,它的使用情境是這樣的,如果我們有一個型別是自訂類別的屬性,並且在建構式中有針對該屬性做初始化,在初始化後想要接著修改該屬性中裡面的屬性值,C# 的 Object Initializer 有一個簡便的語法 Xyz = { ... }
。
我們通常會使用 C# 的 Object Initializer 在產生 Instance 時,順便對一些屬性賦值,假定我們有一個型別為自訂類別的屬性 Xyz,並且在建構式中有針對 Xyz 做初始化,就像這樣:
public class Abc
{
public Abc()
{
this.Xyz = new Cde();
}
public Cde Xyz { get; set; }
}
public class Cde
{
public int Id { get; set; }
public string Name { get; set; }
}
如果我們要在 Xyz 初始化之後,再去修改裡面的屬性值,通常的做法是像下面這樣:
public class Program
{
public static void Main(string[] args)
{
var abc = new Abc();
abc.Xyz.Name = "Hello";
}
}
但是,使用 Object Initializer 可以簡化成這樣:
public class Program
{
public static void Main(string[] args)
{
var abc = new Abc { Xyz = { Name = "Hello" } };
}
}
這個語法我在官方網站找不到有相關的說明,可能是我沒有下對關鍵字,如果有知道的朋友,可以不吝分享一下這個語法官方的相關資訊,感謝。