Caso vs If más If: ¿Cuál es más eficiente? [duplicar]

Posibles duplicados:
¿Es "else if" más rápido que "switch () case"?
¿Cuál es el rendimiento relativo de if / else vs. switch en Java?

He estado codificando en la ejecución nuevamente ... cuando el depurador pasa por una declaración de caso, salta al elemento que coincide con las condiciones de inmediato, sin embargo, cuando se especifica la misma lógica usando if / else, pasa por cada declaración if hasta que encuentre al ganador. ¿La declaración del caso es más eficiente o mi depurador solo está optimizando el paso? (no se preocupe por la sintaxis / errores, escribí esto en SO, no sé si se compilará, es el principio que busco, no quería hacerlos como ints porque recuerdo vagamente algo sobre caso usando un desplazamiento con ints) Uso C #, pero estoy interesado en una respuesta general en todos los lenguajes de programación.

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{

   }

Respuestas a la pregunta(7)

Su respuesta a la pregunta