C#10新特性之扩展的属性模式

C# 10 添加了扩展属性模式,以便更轻松地访问模式中的嵌套属性值。例如,如果我们在上面的 Person 记录中添加一个地址,我们可以通过以下两种方式进行模式匹配:.

object obj = new Person
{
    FirstName = "Kathleen",
    LastName = "Dollard",
    Address = new Address { City = "Seattle" }
};

if (obj is Person { Address: { City: "Seattle" } })
    Console.WriteLine("Seattle");

if (obj is Person { Address.City: "Seattle" }) // Extended property pattern
    Console.WriteLine("Seattle");

扩展属性模式简化了代码并使其更易于阅读,尤其是在匹配多个属性时。