csharp / intermediate
Snippet
Tiefe Inspektion mit rekursiven Eigenschaftsmustern
Eigenschaftsmuster ermöglichen den Abgleich mit den Eigenschaften eines Objekts. Rekursive Muster gehen tiefer und erlauben es, Eigenschaften verschachtelter Objekte direkt innerhalb eines einzigen Ausdrucks zu prüfen.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
public record Person(string Name, Address WorkAddress);public record Address(string City, string Country);public class PatternMatcher {public string CheckLocation(Person person) {return person switch {{ WorkAddress: { City: "Berlin" } } => "Works in Berlin",{ WorkAddress: { Country: "USA" } } => "Works in the United States",_ => "Unknown Location"};}}
Erklärung
1
{ WorkAddress: { City: "Berlin" } }
Trifft zu, wenn das verschachtelte WorkAddress-Objekt eine City-Eigenschaft gleich 'Berlin' hat.
2
person switch { ... }
Verwendet einen Switch-Ausdruck, um basierend auf dem übereinstimmenden Muster einen Wert zurückzugeben.