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