C# bietet Standard-Kontrollfluss-Konstrukte — Bedingungen (if, ), Schleifen (, , ) und Verzweigungen (, , ) — plus moderne Verbesserungen wie Switch-Ausdrücke und Pattern Matching, die Code prägnanter machen.
switchforforeachwhilebreakcontinuereturnif (score >= 90)
grade = "A";
else if (score >= 80)
grade = "B";
else
grade = "F";
// ternary and null-coalescing
string status = age >= 18 ? "adult" : "minor";
string name = input ?? "default"; // ?? — use default if input is null
name ??= "fallback"; // ??= assign if null
// traditional switch
switch (day)
{
case "Sat":
case "Sun":
type = "weekend";
break; // break required (no fall-through)
default:
type = "weekday";
break;
}
// switch EXPRESSION (C# 8) — concise, returns a value, with pattern matching
string type = day switch
{
"Sat" or "Sun" => "weekend",
_ => "weekday", // _ = default
};
// pattern matching in switch
string describe = obj switch
{
int n when n > 0 => "positive int",
string s => $"string of length {s.Length}",
null => "null",
_ => "other",
};
Der moderne switch-Ausdruck ist prägnant (gibt einen Wert zurück, kein break), und unterstützt leistungsstarkes Pattern Matching (Abgleich von Typen, Bedingungen und mehr) — eine große Verbesserung gegenüber dem ausführlichen traditionellen switch.
for (int i = 0; i < 10; i++) { }
foreach (var item in collection) { } // iterate any IEnumerable
while (condition) { }
do { } while (condition); // runs at least once
foreach (Iteration über beliebiges IEnumerable) ist die idiomatische Schleife für Sammlungen.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Kontrollfluss ist der grundlegende Mechanismus, um Logik in jedem Programm auszudrücken, daher ist das Verständnis von C#-Konstrukten grundlegendes Alltagswissen.
Während die Grundlagen Standard sind, lohnt es sich, moderne C#-Verbesserungen zu kennen und zu nutzen: Der switch-Ausdruck (C# 8+) ist eine bedeutende Verbesserung gegenüber dem traditionellen switch — prägnant, wertrückgabe, keine Durchfallsfehler (kein vergessenes break), und mit Unterstützung von Pattern Matching (Abgleich von Typen, Bedingungen, Werten und Struktur), was komplexe bedingte Logik weitaus sauberer macht als verschachtelte if-else-Ketten.
Die Null-Coalescing-Operatoren (??, ??=) bieten saubere Null-Behandlung, und foreach ist die idiomatische Methode zum Iterieren von Sammlungen.
Diese Konstrukte zu kennen und die modernen, ausdrucksstärkeren Formen zu bevorzugen (switch-Ausdrücke mit Pattern Matching gegenüber ausführlichen switch-Anweisungen, Null-Coalescing für Standardwerte) ist Alltagswissen zum Schreiben von sauberem, idiomatischem C#.
Der switch-Ausdruck und Pattern Matching spiegeln besonders die Entwicklung von modernem C# hin zu funktionalerer, prägnanter Code wider, was sie wichtig macht, um sowohl besseren Code zu schreiben als auch aktuelle C#-Codebasen zu lesen, die diese Funktionen umfassend nutzen.