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 :
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 :
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; }
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; }
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; }
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"); }
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!