Home Full Site
C# 10 : 확장된 속성 패턴 (Extended Property Pattern)

C# 8에서 도입된 속성패턴(Property Pattern)에서는 내포 속성(nested property)을 사용하는 경우 '{속성: {내부속성: 내부속성값}}' 등과 같이 계속 내부 속성들을 지정해 주어야 했다. C# 10에서는 이를 '{속성.내부속성 = 내부속성값}' 등과 단순하게 표현할 수 있게 하였다. 만약 내부 속성이 연달아 있는 경우 계속해서 괄호를 넣어 내부속성을 지정해야 하고 이는 가독성을 많이 떨어뜨릴 수 있을텐데, C# 10의 확장된 속성 패턴 기능을 이러한 점을 개선한 것으로 볼 수 있다.

예제

var p = new Person { Name = "Kim", Address = new Address() };

// C# 10 Extended Property Pattern
if (p is { Address.City: "Seoul" })
{
    Console.WriteLine("I live in Seoul");
}

class Person
{
    public string Name { get; set; }
    public Address Address { get; set; }
}

class Address
{
    public string Country { get; set; } = "Korea";
    public string City { get; set; } = "Seoul";
}



© csharpstudy.com