A C# standard vezérlésfolyam-konstruktokat biztosít — feltételes utasítások (, ), ciklusok (, , ) és ágfelhasználás (, , ) — plus modern fejlesztések, mint a switch kifejezések és a pattern matching, amelyek tömörebbé teszik a kódot.
ifswitchforforeachwhilebreakcontinuereturnif (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",
};
A modern switch kifejezés tömör (értéket ad vissza, nincs break), és támogatja a hatékony pattern matchinget (típusok, feltételek és még sok minden illesztése) — jelentős fejlődés a gyakran unalmas tradicionális switch-hez képest.
for (int i = 0; i < 10; i++) { }
foreach (var item in collection) { } // iterate any IEnumerable
while (condition) { }
do { } while (condition); // runs at least once
A foreach (bármely IEnumerable iterálása) az idiomatikus ciklus gyűjtemények esetén.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
A vezérlésfolyam az alapvető mechanizmus a logika kifejezésére minden programban, így a C# konstruktjainak megértése alapvető mindennapi ismeret.
Bár az alapok standard megoldások, a modern C# fejlesztések érdemes tudni és használni: a switch kifejezés (C# 8+) jelentős fejlődés a tradicionális switch-hez képest — tömör, értékvisszaadó, nincs átesés-hiba (nincs elfelejtett break), és támogatja a pattern matchinget (típusok, feltételek, értékek és szerkezet illesztése), amely sokkal tisztábbá teszi az összetett feltételes logikát, mint a beágyazott if-else láncok.
A null-coalescing operátorok (??, ??=) tiszta null-kezelést biztosítanak, és a foreach az idiomatikus módja a gyűjtemények iterálásának.
Ezeknek a konstruktoknak a ismerete és a modern, kifejezőbb formák előnyben részesítése (switch kifejezések pattern matchinggel a gyakran unalmas switch utasítások helyett, null-coalescing az alapértelmezésekhez) mindennapi ismeret a tiszta, idiomatikus C# kódíráshoz.
A switch kifejezés és a pattern matching különösen tükrözik a modern C# fejlődését a funkcionálisabb, tömörebb kód felé, ezért fontos megérteni őket mind a jobb kód írásához, mind a jelenlegi C# kódbázisok olvasásához, amelyek ezeket a funkciókat széles körben használják.