C# Programming

Maîtriser les comparaisons de chaînes de caractères dans les instructions switch C#

Spread the love

Table des matières

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 instructions break (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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *