Literales de números de C #
-
06-07-2019 - |
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?
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