💡 1. Moderne Switch Expressions & Patterns
C# revolutionierte Verzweigungen: Switch Expressions sind Ausdrücke mit Pfeilsyntax `=>` und dem Discard-Symbol `_`:
public record Person(string Name, int Age, string Role);
public string GetAccessLevel(Person person) => person switch {
{ Role: "Admin" } => "Vollzugriff (Admin)",
{ Age: < 18 } => "Eingeschränkter Jugendzugang",
{ Role: "Mitarbeiter", Age: >= 18 } => "Standardmitarbeiter-Zugang",
_ => "Gast-Zugang"
};
Ein klassisches `if/else` prüft Feld für Feld mit logischen UNDs. Pattern Matching ist wie ein Scanner am Flughafengate: Er erfasst die Kontur des gesamten Objekts (Alter, Rolle, Status) auf einen Blick!
⚡ 2. Quick-Cheat-Sheet
| Pattern-Typ | Beispiel | Einsatzzweck |
|---|---|---|
| Relational | age switch { < 18 => ... } | Zahlenbereiche prüfen ohne if-Ketten |
| Property | person is { City: "Berlin" } | Objekt-Eigenschaften matchen |
| Type Pattern | obj is string text | Gleichzeitige Typprüfung und Cast |
| Discard | _ => "Default" | Fängt alle übrigen Fälle ab |
⚠️ 3. Häufige Stolperfallen (Gotchas & Anti-Patterns)
Fängt eine Switch Expression nicht alle möglichen Fälle ab und fehlt der _ => Fall, wirft die CLR zur Laufzeit eine SwitchExpressionException!
Spezifische Muster müssen IMMER vor allgemeinen Mustern stehen, sonst wird der spezifische Fall niemals erreicht.
🧠 4. Diagnostischer Selbst-Check
Überprüfe dein Verständnis von Sprach-Features, Speicherverwaltung und Enterprise-Architektur, bevor du den Code in der Web-IDE schreibst.