Case vs If Else If: Qual é mais eficiente? [duplicado]

Possíveis duplicatas:
"else if" é mais rápido que "switch () case"?
Qual é o desempenho relativo do if / else vs. switch em Java?

Eu tenho codificado na execução novamente .... quando o depurador percorre uma instrução case, ele salta para o item que corresponde às condições imediatamente, no entanto, quando a mesma lógica é especificada usando if / else ela percorre todas as instruções if até encontrar o vencedor. A declaração de caso é mais eficiente ou meu depurador está apenas otimizando a etapa? (não se preocupe com a sintaxe / erros, digitei isso no SO, não sei se ele será compilado, é o princípio que procuro, não queria fazê-los como ints, porque me lembro vagamente de algo sobre caso usando um deslocamento com ints) eu uso C #, mas estou interessado em uma resposta geral em linguagens de programação.

switch(myObject.GetType()){

    case typeof(Car):
        //do something
        break;

    case typeof(Bike):
        //do something
        break;

    case typeof(Unicycle):
        //do something
        break;

    case default:
        break;
}

VS

   Type myType = myObject.GetType();

   if (myType == typeof(Car)){
            //do something
   }

   else if (myType == typeof(Bike)){
            //do something
   }

   else if (myType == typeof(Unicycle)){
            //do something
   }
   else{

   }

questionAnswers(7)

yourAnswerToTheQuestion