C# poskytuje standardní řídící konstrukty toku — podmínky (if, ), smyčky (, , ) a větvení (, , ) — plus moderní vylepšení jako výrazy switch a porovnávání vzorů, která činí kód stručnějším.
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",
};
Moderní výraz switch je stručný (vrací hodnotu, žádný break), a podporuje výkonné porovnávání vzorů (porovnávání typů, podmínek a více) — hlavní zlepšení oproti podrobnému tradičnímu 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 (iterace jakéhokoliv IEnumerable) je idiomatická smyčka pro kolekce.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Řídící tok je základní mechanismus pro vyjádření logiky v každém programu, proto pochopení konstruktů C# je základní každodenní znalost.
Zatímco základy jsou standardní, moderní vylepšení C# stojí za to znát a používat: výraz switch (C# 8+) je významné zlepšení oproti tradičnímu switch — stručný, vracející hodnotu, bez chyb propadnutí (bez zapomenutého break), a podporující porovnávání vzorů (porovnávání typů, podmínek, hodnot a struktury), což činí složitou podmínkovou logiku daleko čistší než vnořené řetězce if-else.
Operátory slučování null (??, ??=) poskytují čisté zacházení s null, a foreach je idiomatický způsob, jak iterovat kolekce.
Znalost těchto konstruktů a preferování moderních, více výrazových forem (výrazy switch s porovnáváním vzorů před podrobnými příkazy switch, slučování null pro výchozí hodnoty) je každodenní znalostí pro psaní čistého a idiomatického C#.
Výraz switch a porovnávání vzorů obzvlášť odrážejí vývoj moderního C# směrem k funkčnějšímu, stručnějšímu kódu, což je činí důležité pochopit jak pro psaní lepšího kódu, tak pro čtení současných kódů C#, které tyto funkce využívají rozsáhle.