C# 10 ile gelen küçük yeniliklerden biri de Extended Property Patterns.
C# 8 ile hayatımıza property pattern özelliği girmişti hatırlarsanız, iç içe olan property’lere süslü parantezler kullanarak erişebiliyorduk.
if (p is Person { Name: "Soner", Address: { City: "İstanbul" } })
Ama bu kullanım, bir çok iç içe property içeren yapılarda çok fazla süslü parantez olması nedeniyle okunurluğu azaltıyordu.
C# 10’da gelen extended property patterns ile, artık süslü parantez kullanmadan direkt olarak nokta notasyonu ile bu property’lere erişim sağlayabiliyoruz pattern’lar içerisinde.
if (p is Person { Name: "Soner", Address.City : "İstanbul" })
Bu yapıda da iç içe property’lerde null kontrolü var. Yani burada Address property’si null olsa bile herhangi bir nullreferenceexception fırlatmıyor.
Kaynaklar:
Extended property patterns: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/extended-property-patterns
Property Pattern: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-8.0/patterns.md#property-pattern