質問
このメソッド宣言を使用すると(オーバーロードなし):
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に変換します。
ペナルティはありません。
所属していません StackOverflow