Question

Avec cette déclaration de méthode (sans surcharge):

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

Y a-t-il une différence (de performance) au moment de l'exécution entre

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

ou le compilateur convertit-il automatiquement le littéral int en double?

Était-ce utile?

La solution

Je viens de l'essayer. C # 3.0 génère l'IL suivant pour votre premier appel:

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

Donc, pas de conversion à l'exécution.

Autres conseils

Le compilateur convertira implicitement l'int en un double.

Il n'y aura pas de pénalité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top