C# jipprovdi kostruzzjonijiet ta' kontroll tal-fluss standard — kondizzjonali (, ), loops (, , ), u fergħa (, , ) — plus titjib modern bħall-espressjonijiet switch u pattern matching li jagħmlu l-kod iktar konkiż.
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",
};
L-espressjoni switch moderna hija konkiza (tirritorna valur, l-ebda break), u tappoġġja pattern matching qawwija (qabbil ta' tipi, kundizzjonijiet, u iktar) — titjib kbir fuq il-switch tradizzjonali 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 (iterazzjoni ta' kwalunkwe IEnumerable) hija loop idiomtika għall-kollezioni.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Il-kontroll tal-fluss huwa l-mekkaniżmu bażiku għal espressjoni tal-loġika f'kull programm, għaldaqstant l-għarfien tal-kostruzzjonijiet ta' C# hu għarfien fundamentali ta' kuljum.
Bħalissa l-bażiki huma standard, it-titjib modern ta' C# jiswa li tkun taf u tuża: l-espressjoni switch (C# 8+) hija titjib sinifikanti fuq il-switch tradizzjonali — konkiza, tirritorna valur, l-ebda bug ta' fall-through (l-ebda break minskuż), u jappoġġja pattern matching qawwija (qabbil ta' tipi, kundizzjonijiet, valuri, u struttura), li tagħmel il-loġika kondizzjonali kumplessa ħafna iktar nadifa minn katini if-else nested.
L-operaturi null-coalescing (??, ??=) jipprovdu immaniġġ null nadif, u foreach hija l-mod idiomtiku biex tterplika l-kollezioni.
L-għarfien ta' dawn il-kostruzzjonijiet u l-preferenza ta' forom modern u aktar espressivi (espressjonijiet switch b'pattern matching fuq statements switch verbose, null-coalescing għal defaults) hu għarfien ta' kuljum għal kitba ta' C# nadif u idiomtiku.
L-espressjoni switch u pattern matching partikolarment jirifletti l-evoluzzjoni ta' C# modern lejn kodiċi aktar funzjonali u konkiż, li jagħmilhom importanti biex tifhimhom kemm għal kitba ta' kodiċi aħjar kif ukoll għal qari ta' C# codebases attwali li jużaw dawn il-features b'mod estensiv.