Table des matières
- Comprendre les instructions Switch
- Utiliser les chaînes de caractères dans les instructions Switch C#
- Sensibilité à la casse
- Expressions Switch pour une meilleure lisibilité
- Conclusion
- Foire aux questions
Comprendre les instructions Switch
L’instruction switch
offre un moyen structuré de sélectionner un bloc de code à exécuter en fonction de la valeur d’une expression. C’est une alternative plus efficace aux longues chaînes if-else if
lorsqu’il s’agit de plusieurs valeurs possibles. La syntaxe de base est :
switch (expression)
{
case value1:
// Code à exécuter si expression == value1
break;
case value2:
// Code à exécuter si expression == value2
break;
default:
// Code à exécuter si aucun cas ne correspond
break;
}
L’instruction break
est essentielle ; elle empêche le « passage au cas suivant ». Sans elle, l’exécution continue au cas suivant même si le cas actuel correspond.
Utiliser les chaînes de caractères dans les instructions Switch C#
Avant C# 8, l’utilisation de chaînes de caractères dans les instructions switch
nécessitait des solutions de contournement fastidieuses. C# 8 a introduit la correspondance de modèles, permettant des comparaisons de chaînes directes dans les instructions switch
, améliorant ainsi considérablement la lisibilité et la maintenabilité du code.
string day = "Monday";
switch (day)
{
case "Monday":
Console.WriteLine("Début de la semaine de travail !");
break;
case "Tuesday":
case "Wednesday":
case "Thursday":
Console.WriteLine("Milieu de semaine !");
break;
case "Friday":
Console.WriteLine("Presque le week-end !");
break;
case "Saturday":
case "Sunday":
Console.WriteLine("Temps du week-end !");
break;
default:
Console.WriteLine("Jour invalide saisi.");
break;
}
Cet exemple montre comment gérer efficacement diverses valeurs de chaînes de caractères. Notez la possibilité de regrouper plusieurs cas sans instructions if
imbriquées.
Sensibilité à la casse
Les comparaisons de chaînes de caractères dans les instructions switch
de C# sont sensibles à la casse. Pour des comparaisons non sensibles à la casse, convertissez la chaîne en minuscules (ou en majuscules) avant la comparaison :
string day = "monday";
switch (day.ToLower())
{
case "monday":
Console.WriteLine("Début de la semaine de travail !");
break;
// ... autres cas ...
}
Expressions Switch pour une meilleure lisibilité
C# 8 a également introduit des expressions switch, offrant une syntaxe plus compacte. L’exemple précédent devient :
string day = "Monday";
string message = day switch
{
"Monday" => "Début de la semaine de travail !",
"Tuesday", "Wednesday", "Thursday" => "Milieu de semaine !",
"Friday" => "Presque le week-end !",
"Saturday", "Sunday" => "Temps du week-end !",
_ => "Jour invalide saisi."
};
Console.WriteLine(message);
Les expressions switch sont généralement privilégiées pour leur concision et leur meilleure lisibilité, notamment avec de nombreux cas.
Conclusion
La correspondance de modèles de C# 8 simplifie l’utilisation des chaînes de caractères dans les instructions switch
, améliorant la lisibilité et la maintenabilité du code par rapport aux anciennes approches if-else if
. N’oubliez pas la sensibilité à la casse et envisagez d’utiliser des expressions switch pour un code plus élégant.
Foire aux questions
- Q : Existe-t-il des limites de longueur pour les chaînes de caractères dans les instructions switch ? R : Non, il n’y a pas de limite inhérente. Des chaînes très longues peuvent avoir un impact mineur sur les performances, mais il est généralement négligeable.
- Q : Que se passe-t-il si j’omets l’instruction
break
? R : Un passage au cas suivant se produit ; l’exécution continue au cas suivant, ce qui peut entraîner un comportement inattendu. Incluez toujours des instructionsbreak
(ou utilisez des expressions switch). - Q : Les expressions switch sont-elles toujours plus rapides ? R : La différence de performance est généralement négligeable. Privilégiez la lisibilité et la maintenabilité ; les expressions switch conduisent souvent à un code plus clair.