個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

C# 10 の新機能 - 拡張プロパティ パターン

C# 10 の新機能の情報の目次は以下をご覧ください。
hiro128.hatenablog.jp 
 

拡張プロパティ パターン

ネストされたプロパティまたはプロパティ パターン内のフィールドを参照できるようになりました。
以下のような C# 9.0 のコードは、C# 10.0 では「.(ドット)」を使って簡潔に直感的に理解できるように記述できます。

C# 9.0

Person person01 = new();
Console.WriteLine(person01 is Person { Name: Name { FirstName: "太郎" } });

public record struct Name(string FirstName, string LastName);
public record struct Person(Name Name, DateOnly Birthday);

 
C# 10.0

Person person02 = new();
Console.WriteLine(person02 is Person { Name.FirstName: "太郎" });

public record struct Name(string FirstName, string LastName);
public record struct Person(Name Name, DateOnly Birthday);

導入の意図

ネストして冗長な中括弧が増えて読みにくくなるのを防ぎ、簡潔で直感的に理解できるようなコードが記述できます。
こちらも「ソースコードを簡潔にするための機能」です。

公式情報:
Extended property patterns
プロパティ パターン