Можно создать дубликат:
Is there any significant difference between using if/else and switch-case in C#?«Еще если» быстрее, чем «switch() case»?
Я бывший Паскаль парень, в настоящее время обучение C#. Мой вопрос:
Является ли код ниже быстрее, чем с помощью переключателя?
int a = 5;
if (a == 1)
{
....
}
else if(a == 2)
{
....
}
else if(a == 3)
{
....
}
else if(a == 4)
{
....
}
else
....
И переключатель:
int a = 5;
switch(a)
{
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
case 4:
...
break;
default:
...
break;
}
Какой из них быстрее?
Я спрашиваю, потому что моя программа имеет похожую структуру (много, много «else if»). Должен ли я включить их в переключатели?
Я чувствую себя вынужденным заметить, что вы можете быть недостаточно используемым полиморфизмом в своих проектах, если ваш код имеет много таких структур. –
См. Http://stackoverflow.com/questions/445067/if-vs-switch-speed –
Переключатель быстрее, но если вы не оптимизируете жесткий цикл, это ничего не значит. Что такое 37 наносекунд против 42 наносекунд (составленные цифры)? –