Domanda

Con questa dichiarazione del metodo (senza sovraccarichi):

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

Esiste una differenza (di prestazione) in fase di esecuzione tra

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

o il compilatore converte automaticamente int letterale in un doppio?

È stato utile?

Soluzione

L'ho appena provato. C # 3.0 genera il seguente IL per la prima chiamata:

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

Quindi, nessuna conversione di runtime.

Altri suggerimenti

Il compilatore convertirà implicitamente int in un doppio.

Non ci sarà penalità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top