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?

Foi útil?

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
scroll top