0 Tage Serie
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.