個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Xamarin に関する事を中心に書いています。 Microsoft MVP for Development Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

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

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

拡張プロパティ パターン

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

C# 9.0

public record Point(int X, int Y);
public record Segment(Point Start, Point End);

static bool IsAnyEndOnXAxis(Segment segment) => segment is { Start: { Y: 0 } } or { End: { Y: 0 } };

 
C# 10.0

public record Point(int X, int Y);
public record Segment(Point Start, Point End);

static bool IsAnyEndOnXAxis(Segment segment) => segment is { Start.Y: 0 } or { End.Y: 0 };

導入の意図

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

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