Parece que muito trabalho foi feito para encontrar maneiras de fazer com que uma das sintaxes menos usadas do C # parecesse melhor ou funcionasse melhor. Pessoalmente, acho que raramente vale a pena usar a instrução switch. Eu sugiro fortemente analisar quais dados você está testando e os resultados finais que deseja.
Digamos, por exemplo, que você deseja testar rapidamente valores em um intervalo conhecido para ver se são números primos. Você deseja evitar que seu código faça cálculos desnecessários e pode encontrar uma lista de números primos no intervalo que deseja online. Você pode usar uma instrução de comutação massiva para comparar cada valor com números primos conhecidos.
Ou você pode simplesmente criar um mapa de matriz de números primos e obter resultados imediatos:
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();
}
}
Talvez você queira ver se um caractere em uma string é hexadecimal. Você pode usar uma declaração de chave feia e um tanto grande.
Ou você pode usar expressões regulares para testar o char ou usar a função IndexOf para procurar o char em uma sequência de letras hexadecimais conhecidas:
private void textBox2_TextChanged(object sender, EventArgs e) {
try {
textBox1.Text = ("0123456789ABCDEFGabcdefg".IndexOf(textBox2.Text[0]) >= 0).ToString();
} catch {
}
}
Digamos que você queira executar uma das três ações diferentes, dependendo de um valor que esteja no intervalo de 1 a 24. Eu sugeriria o uso de um conjunto de instruções IF. E se isso se tornar muito complexo (ou os números forem maiores, como 5 ações diferentes, dependendo de um valor no intervalo de 1 a 90), use uma enumeração para definir as ações e criar um mapa de matriz das enumerações. O valor seria então usado para indexar no mapa da matriz e obter a enumeração da ação que você deseja. Em seguida, use um pequeno conjunto de instruções IF ou uma instrução switch muito simples para processar o valor de enumeração resultante.
Além disso, o bom de um mapa de matriz que converte um intervalo de valores em ações é que ele pode ser facilmente alterado por código. Com código com fio, você não pode alterar facilmente o comportamento em tempo de execução, mas com um mapa de matriz é fácil.