Pregunta

Con esta declaración de método (sin sobrecargas):

void Method(double d)
{
  // do something with d
}

¿Hay una diferencia (de rendimiento) en tiempo de ejecución entre

void Main()
{
    Method(1);
    Method(1.0);
}

¿o el compilador convierte automáticamente el literal int a un doble?

¿Fue útil?

Solución

Lo acabo de probar. C # 3.0 genera el siguiente IL para su primera llamada:

ldc.r8 1.
call instance void ConsoleApplication1.Program::Method(float64)

Entonces, no hay conversión de tiempo de ejecución.

Otros consejos

El compilador convertirá implícitamente el int a un doble.

No habrá penalización.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top