Вопрос

С этим объявлением метода (без перегрузок):

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

Есть ли (производительность) разница во время выполнения между

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

или компилятор автоматически преобразует литерал int в double?

Это было полезно?

Решение

Я только что попробовал это. C # 3.0 генерирует следующий IL для вашего первого вызова:

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

Так что, нет времени конвертации.

Другие советы

Компилятор неявно преобразует int в double.

Там не будет никакого штрафа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top