csharp / intermediate
Snippet
Positionales Pattern Matching und Dekonstruktion
Positionale Muster ermöglichen den Abgleich von Objekten basierend auf ihren dekonstruierten Komponenten. Dies funktioniert automatisch mit Records oder Klassen, die eine Deconstruct-Methode implementieren, und bietet eine prägnante Syntax für komplexe Bedingungsprüfungen.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
public record Point(int X, int Y);public string DescribeLocation(Point p) => p switch{(0, 0) => "At the origin",(_, 0) => "On the X-axis",(0, _) => "On the Y-axis",var (x, y) when x == y => "On the diagonal",_ => "Somewhere else"};
Erklärung
1
p switch
Initiiert einen Switch-Ausdruck für das Objekt p.
2
(_, 0)
Verwendet ein Discard-Muster für X und trifft zu, wenn Y genau 0 ist.
3
var (x, y) when x == y
Extrahiert Werte in Variablen und wendet eine Guard-Clause-Bedingung an.