C# ofron konstruktime standarde të kontrollës së fluksit — kushte (if, ), unaza (, , ) dhe degëzime (, , ) — plus përmirësimet moderne si switch expressions dhe pattern matching që bëjnë kodin më konciz.
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",
};
switch expression modern është konciz (kthen një vlerë, pa break), dhe suporton pattern matching të fuqishëm (përputhje tipash, kushtesh, dhe më shumë) — një përmirësim i madh mbi switch-in tradicional të verbose.
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 (iterim mbi ndonjë IEnumerable) është unaza idiomatike për koleksionet.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Kontrolli i fluksit është mekanizmi bazë për shprehjen e logjikës në secilin program, kështu që kuptimi i konstruktimeve të C# është njohuri themelore të përditshme.
Ndërsa bazat janë standarde, përmirësimet moderne të C# ia vlen të njihen dhe të përdoren: switch expression (C# 8+) është një përmirësim i ndjeshëm mbi switch-in tradicional — konciz, i kthen vlerë, pa gabime rënieje (pa break të harruar), dhe suporton pattern matching (përputhje në tipe, kushte, vlera, dhe strukturë), që e bën logjikën kushtuese komplekse shumë më të pastër se lancat nested if-else.
Operatoret null-coalescing (??, ??=) ofrojnë trajtim të pastër të null, dhe foreach është mënyra idiomatike për të iteruar koleksionet.
Njohja e këtyre konstruktimeve dhe preferimi i formave moderne, më shprehëse (switch expressions me pattern matching mbi switch statements verbose, null-coalescing për paracaktime) është njohuri e përditshme për shkrimin e kodit të pastër, idiomatik të C#.
Switch expression dhe pattern matching në veçanti pasqyrojnë evolucionin e C# modern drejt kodit më funksional, më konciz, duke i bërë ato të rëndësishme për kuptimin si për shkrimin e kodit më të mirë ashtu edhe për leximin e codebase të C# aktual që përdorin këto veçori gjerësisht.