Mustervergleich (pattern matching) in C#
In dieser Lektion prüfst du mit einem switch-Ausdruck und Mustern Typ und Wert von Daten übersichtlich und sicher.
Einführung
Mit dem Mustervergleich (pattern matching) prüfst du in einem einzigen Ausdruck, welchen Typ ein Wert hat, ob er eine Bedingung erfüllt, und holst die Daten gleich zur Verwendung heraus. Das ersetzt das umständliche und fehleranfällige Prüfen des Typs mit anschließender manueller Typumwandlung.
Der switch-Ausdruck in der Funktion Describe prüft die Muster der Reihe nach: null für fehlende Daten, int number when number > 0 für positive ganze Zahlen, string { Length: > 0 } für nicht leere Strings und _ für alle übrigen Fälle. Beim Wert 12 passt das Muster für positive ganze Zahlen, das Ergebnis ist positive 12.
So funktioniert es
Ändere den Tag mit dem Schieberegler. Das Programm springt direkt zum passenden case und zu default, wenn nichts passt.
Ausführbares C#-Beispiel
using System;
class Program
{
static string Describe(object? value) => value switch
{
null => "missing",
int number when number > 0 => $"positive {number}",
string { Length: > 0 } text => $"text: {text}",
_ => "other"
};
static void Main() => Console.WriteLine(Describe(12));
}
positive 12Mit dem Debugger üben
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
- Triangle Classification Classify three side lengths as invalid, equilateral, isosceles, or scalene. Einfach
- Ungerade, Gerade oder Keines von beidem Klassifiziere eine Zahl danach, ob sie eine ungerade ganze Zahl, eine gerade ganze Zahl oder keines von beidem ist. Einfach