🌱 Lehrpfad 1: C# 12 Essentials & Moderne Syntax

C# 02: Switch-Expressions & Pattern Matching

Lerne die Eleganz moderner Switch Expressions in C#, relationale Muster (< 18) und mächtiges Property Pattern Matching.

📂 Dateien dieser Lerneinheit:
📄 Aufgabe.cs (Startercode) 🧪 TestAufgabe.cs (Tests) 💡 Musterloesung.cs (Lösung) 📖 README.md

💡 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"
};
🔍 Didaktische Analogie: Der biometrische Scanner

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-TypBeispielEinsatzzweck
Relationalage switch { < 18 => ... }Zahlenbereiche prüfen ohne if-Ketten
Propertyperson is { City: "Berlin" }Objekt-Eigenschaften matchen
Type Patternobj is string textGleichzeitige Typprüfung und Cast
Discard_ => "Default"Fängt alle übrigen Fälle ab

⚠️ 3. Häufige Stolperfallen (Gotchas & Anti-Patterns)

⚠️ Unvollständige Switch Expression

Fängt eine Switch Expression nicht alle möglichen Fälle ab und fehlt der _ => Fall, wirft die CLR zur Laufzeit eine SwitchExpressionException!

⚠️ Reihenfolge der Cases

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.

🎯 5. Aufgaben & Checkliste in Aufgabe.cs

💻 In Web-IDE öffnen & lösen →