Duplicar posible:
Is there any significant difference between using if/else and switch-case in C#?¿Hay "else if" más rápido que "switch() case"?
soy un chico Pascal ex, actualmente el aprendizaje de C#. Mi pregunta es la siguiente:
¿El código siguiente es más rápido que hacer un cambio?
int a = 5;
if (a == 1)
{
....
}
else if(a == 2)
{
....
}
else if(a == 3)
{
....
}
else if(a == 4)
{
....
}
else
....
y el interruptor:
int a = 5;
switch(a)
{
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
case 4:
...
break;
default:
...
break;
}
Cuál es más rápido?
Lo estoy preguntando, porque mi programa tiene una estructura similar (muchas, muchas declaraciones "else if"). ¿Debo convertirlos en interruptores?
Me siento obligado a notar que puede estar utilizando poco el polimorfismo en sus diseños si su código tiene muchas de estas estructuras. –
Vea http://stackoverflow.com/questions/445067/if-vs-switch-speed –
El cambio es más rápido, pero a menos que esté hiper optimizando un circuito cerrado, no significa nada. ¿Qué es 37 nanosegundos frente a 42 nanosegundos (números compuestos)? –