[小菜一碟] C# 初始化物件(Object Initializer)中一個鮮少用到的冷門語法 -「Xyz = { ... }」

這是無意中發現的一個語法,它的使用情境是這樣的,如果我們有一個型別是自訂類別的屬性,並且在建構式中有針對該屬性做初始化,在初始化後想要接著修改該屬性中裡面的屬性值,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" } };
    }
}

這個語法我在官方網站找不到有相關的說明,可能是我沒有下對關鍵字,如果有知道的朋友,可以不吝分享一下這個語法官方的相關資訊,感謝。

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學