C#数字文字

时间:2009-10-27 11:28:13

标签: c# performance literals

使用此方法声明(无重载):

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

之间在运行时是否存在(性能)差异
void Main()
{
    Method(1);
    Method(1.0);
}

或编译器是否自动将int文字转换为double?

2 个答案:

答案 0 :(得分:7)

编译器会隐式地将int转换为double。

不会受到处罚。

答案 1 :(得分:2)

我刚尝试过。 C#3.0为您的第一次调用生成以下IL:

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

所以,没有运行时转换。