Nombre de littéraux en C #
-
06-07-2019 - |
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?
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