Beaucoup de travail semble avoir été fait pour trouver des moyens d'obtenir une des syntaxes C # les moins utilisées pour mieux paraître ou mieux fonctionner. Personnellement, je trouve que l'instruction switch vaut rarement la peine d'être utilisée. Je suggère fortement d'analyser les données que vous testez et les résultats finaux que vous recherchez.
Disons par exemple que vous souhaitez tester rapidement des valeurs dans une plage connue pour voir s'il s'agit de nombres premiers. Vous voulez éviter que votre code fasse les calculs inutiles et vous pouvez trouver une liste de nombres premiers dans la plage que vous souhaitez en ligne. Vous pouvez utiliser une instruction switch massive pour comparer chaque valeur à des nombres premiers connus.
Ou vous pouvez simplement créer une carte matricielle de nombres premiers et obtenir des résultats immédiats:
bool[] Primes = new bool[] {
false, false, true, true, false, true, false,
true, false, false, false, true, false, true,
false,false,false,true,false,true,false};
private void button1_Click(object sender, EventArgs e) {
int Value = Convert.ToInt32(textBox1.Text);
if ((Value >= 0) && (Value < Primes.Length)) {
bool IsPrime = Primes[Value];
textBox2.Text = IsPrime.ToString();
}
}
Vous voulez peut-être voir si un caractère dans une chaîne est hexadécimal. Vous pouvez utiliser une instruction switch ungly et quelque peu volumineuse.
Ou vous pouvez utiliser des expressions régulières pour tester le caractère ou utiliser la fonction IndexOf pour rechercher le caractère dans une chaîne de lettres hexadécimales connues:
private void textBox2_TextChanged(object sender, EventArgs e) {
try {
textBox1.Text = ("0123456789ABCDEFGabcdefg".IndexOf(textBox2.Text[0]) >= 0).ToString();
} catch {
}
}
Supposons que vous souhaitiez effectuer l'une des 3 actions différentes en fonction d'une valeur comprise entre 1 et 24. Je suggère d'utiliser un ensemble d'instructions IF. Et si cela devenait trop complexe (ou si les nombres étaient plus grands, comme 5 actions différentes selon une valeur comprise entre 1 et 90), utilisez une énumération pour définir les actions et créer une carte de tableau des énumérations. La valeur serait ensuite utilisée pour indexer dans la carte du tableau et obtenir l'énumération de l'action souhaitée. Utilisez ensuite un petit ensemble d'instructions IF ou une instruction switch très simple pour traiter la valeur d'énumération résultante.
En outre, la bonne chose à propos d'une carte de tableau qui convertit une plage de valeurs en actions est qu'elle peut être facilement modifiée par le code. Avec du code câblé, vous ne pouvez pas facilement changer de comportement lors de l'exécution, mais avec une carte de tableau, c'est facile.