C # Número literais
-
06-07-2019 - |
Pergunta
Com esta declaração de método (sem sobrecargas):
void Method(double d)
{
// do something with d
}
Existe uma (performance) diferença em tempo de execução entre
void Main()
{
Method(1);
Method(1.0);
}
ou faz o compilador converter automaticamente o literal int para um duplo?
Solução
Eu apenas tentei. C # 3.0 gera o seguinte IL para a sua primeira chamada:
ldc.r8 1.
call instance void ConsoleApplication1.Program::Method(float64)
Assim, nenhuma conversão de tempo de execução.
Outras dicas
O compilador irá converter implicitamente o int para um duplo.
Não haverá penalidade.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow