C# fournit des construits de flux de contrôle standard — les conditionnels (, ), les boucles (, , ) et les branchements (, , ) — plus des améliorations modernes comme les switch expressions et le pattern matching qui rendent le code plus concis.
C# fournit des construits de flux de contrôle standard — les conditionnels (, ), les boucles (, , ) et les branchements (, , ) — plus des améliorations modernes comme les switch expressions et le pattern matching qui rendent le code plus concis.
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",
};
La switch expression moderne est concise (retourne une valeur, pas de break), et supporte le puissant pattern matching (correspondance de types, conditions, et plus) — une amélioration majeure par rapport au switch traditionnel verbeux.
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 (itération sur n'importe quel IEnumerable) est la boucle idiomatique pour les collections.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Le flux de contrôle est le mécanisme fondamental pour exprimer la logique dans tout programme, donc comprendre les construits de C# est une connaissance fondamentale quotidienne.
Bien que les bases soient standard, les améliorations modernes de C# valent la peine d'être connues et utilisées : la switch expression (C# 8+) est une amélioration significative par rapport au switch traditionnel — concise, retournant une valeur, sans bogues de fall-through (pas de break oubliés), et supportant le pattern matching (correspondance sur les types, conditions, valeurs et structure), ce qui rend la logique conditionnelle complexe bien plus propre que des chaînes de if-else imbriquées.
Les null-coalescing operators (??, ??=) fournissent une gestion propre des null, et foreach est la façon idiomatique d'itérer sur les collections.
Connaître ces construits et préférer les formes modernes et plus expressives (switch expressions avec pattern matching plutôt que des switch statements verbeux, null-coalescing pour les valeurs par défaut) est une connaissance quotidienne pour écrire du C# propre et idiomatique.
La switch expression et le pattern matching en particulier reflètent l'évolution moderne de C# vers un code plus fonctionnel et concis, ce qui les rend importants à comprendre à la fois pour écrire du meilleur code et pour lire les bases de code C# actuelles qui utilisent extensivement ces fonctionnalités.