Maison > développement back-end > C++ > Comment puis-je obtenir un comportement de transition dans les instructions Switch C# ?

Comment puis-je obtenir un comportement de transition dans les instructions Switch C# ?

Linda Hamilton
Libérer: 2025-01-04 07:29:35
original
372 Les gens l'ont consulté

How Can I Achieve Fallthrough Behavior in C# Switch Statements?

Les instructions Switch peuvent-elles échouer en C# ?

Les instructions Switch en C# exécutent généralement le code associé au cas correspondant, puis quittent le commutateur . Cependant, il existe des cas où il peut être souhaitable qu'un cas se transforme en un autre, appelé « échec ».

Dans l'exemple fourni, la méthode NumberToWords tente de convertir un nombre en sa représentation verbale correspondante. Il utilise trois tableaux pour représenter les nombres, les dizaines et les adolescents. L'instruction switch considère que la longueur du numéro saisi correspond à la casse appropriée :

  • Si le nombre est composé de trois chiffres (cas 3), elle ajoute le mot pour les centaines.
  • Si le nombre est composé de deux chiffres (cas 2), il vérifie les cas particuliers (adolescents ou dizaines).
  • Si le nombre est composé d'un chiffre (cas 1), il ajoute le le numéro de place des uns.

Cependant, le compilateur C# génère des erreurs car l'instruction switch ne spécifie pas explicitement où s'exécuter après chaque cas. Par défaut, C# exige que chaque cas ait une instruction break ou une instruction goto pour éviter les échecs.

Pour obtenir un échec en C#, vous pouvez utiliser les techniques suivantes :

  1. Cas vides : Définir un cas sans code, permettant au cas suivant de s'exécuter automatiquement.

    switch (/*...*/) {
     case 0: break; // fall through to case 1
     case 1:
         // do something
         break;
    }
    Copier après la connexion
  2. goto case : utilisez l'instruction goto pour accéder à un cas spécifique dans le commutateur.

    switch (/*...*/) {
     case 0: goto case 1;
     case 1:
         // do something
         break;
    }
    Copier après la connexion
  3. goto default : utilisez l'instruction goto default pour accéder à la valeur par défaut cas.

    switch (/*...*/) {
     case 0: goto default;
     default:
         // do something
         break;
    }
    Copier après la connexion

Dans l'exemple original de NumberToWords, goto peut être utilisé pour obtenir le comportement de chute souhaité :

switch (number.ToString().Length)
{
    case 3:
        ans += string.Format("{0} hundred and ", numbers[number / 100]);
        goto case 2;
    case 2:
        int t = (number / 10) % 10;
        if (t == 1)
        {
            ans += teens[number % 10];
            break;
        }
        else if (t > 1)
            ans += string.Format("{0}-", tens[t]);
        goto case 1;
    case 1:
        int o = number % 10;
        ans += numbers[o];

        break;
    default:
        throw new ArgumentException("number");
}
Copier après la connexion

Bien que la chute puisse fournir un comportement plus concis mise en œuvre dans certains scénarios, il est important de l’utiliser avec prudence. Des échecs excessifs peuvent conduire à un code confus et difficile à maintenir, il doit donc être utilisé judicieusement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal