Parece que se ha realizado una gran cantidad de trabajo para encontrar formas de obtener una de las sintaxis menos utilizadas de C # para que parezca mejor o funcione mejor. Personalmente, creo que la declaración de cambio rara vez vale la pena usarla. Sugeriría encarecidamente analizar qué datos está probando y los resultados finales que desea.
Digamos, por ejemplo, que desea probar rápidamente los valores en un rango conocido para ver si son números primos. Desea evitar que su código haga los cálculos innecesarios y puede encontrar una lista de números primos en el rango que desea en línea. Podría usar una declaración de cambio masivo para comparar cada valor con números primos conocidos.
O simplemente podría crear un mapa de matriz de números primos y obtener resultados inmediatos:
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();
}
}
Tal vez quiera ver si un carácter en una cadena es hexadecimal. Podría usar una declaración de cambio fea y algo grande.
O puede usar expresiones regulares para probar el carácter o utilizar la función IndexOf para buscar el carácter en una cadena de letras hexadecimales conocidas:
private void textBox2_TextChanged(object sender, EventArgs e) {
try {
textBox1.Text = ("0123456789ABCDEFGabcdefg".IndexOf(textBox2.Text[0]) >= 0).ToString();
} catch {
}
}
Digamos que desea realizar una de 3 acciones diferentes dependiendo de un valor que será el rango de 1 a 24. Sugeriría usar un conjunto de declaraciones IF. Y si eso se volvió demasiado complejo (o los números eran más grandes, como 5 acciones diferentes dependiendo de un valor en el rango de 1 a 90), use una enumeración para definir las acciones y crear un mapa de matriz de las enumeraciones. El valor se usaría para indexar en el mapa de matriz y obtener la enumeración de la acción que desea. Luego use un pequeño conjunto de declaraciones IF o una declaración de cambio muy simple para procesar el valor de enumeración resultante.
Además, lo bueno de un mapa de matriz que convierte un rango de valores en acciones es que se puede cambiar fácilmente por código. Con el código cableado no puede cambiar fácilmente el comportamiento en tiempo de ejecución, pero con un mapa de matriz es fácil.