C# tilbyr standard kontrollstrøm-konstruksjoner — betingelser (if, ), løkker (, , ) og forgreninger (, , ) — pluss moderne forbedringer som switch-uttrykk og pattern matching som gjør koden mer presis.
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",
};
Det moderne switch-uttrykket er presist (returnerer en verdi, ingen break), og støtter kraftig pattern matching (matcher typer, betingelser og mer) — en betydelig forbedring over den verbøse tradisjonelle 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 (iterasjon av enhver IEnumerable) er den idiomatiske løkken for samlinger.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Kontrollstrøm er den grunnleggende mekanismen for å uttrykke logikk i ethvert program, så å forstå C#s konstruksjoner er fundamental dagligdags kunnskap.
Mens det grunnleggende er standard, er moderne C#-forbedringer verdt å kjenne og bruke: switch-uttrykket (C# 8+) er en betydelig forbedring over tradisjonell switch — presist, verdi-returnerende, ingen fall-through-feil (ingen glemt break), og støtter pattern matching (matching på typer, betingelser, verdier og struktur), som gjør kompleks betinget logikk langt renere enn nestede if-else-kjeder.
Null-coalescing-operatorene (??, ??=) tilbyr ren null-håndtering, og foreach er den idiomatiske måten å iterere samlinger på.
Å kjenne disse konstruksjonene og foretrekke de moderne, mer uttrykksfulle formene (switch-uttrykk med pattern matching over verbøse switch-statements, null-coalescing for standardverdier) er dagligdags kunnskap for å skrive ren, idiomatisk C#.
Switch-uttrykket og pattern matching reflekterer særlig moderne C#s utvikling mot mer funksjonell, presis kode, noe som gjør dem viktig å forstå både for å skrive bedre kode og for å lese gjeldende C#-kodebaser som bruker disse funksjonene omfattende.