문제
이 메소드 선언으로 (과부하 없음) :
void Method(double d)
{
// do something with d
}
런타임에 (성능) 차이가 있습니까?
void Main()
{
Method(1);
Method(1.0);
}
아니면 컴파일러가 Intreral을 자동으로 이중으로 변환합니까?
해결책
방금 시도했습니다. C# 3.0 첫 번째 호출에 대한 다음 IL을 생성합니다.
ldc.r8 1.
call instance void ConsoleApplication1.Program::Method(float64)
따라서 런타임 변환이 없습니다.
다른 팁
컴파일러는 int를 암시 적으로 Double으로 변환합니다.
형벌은 없을 것입니다.
제휴하지 않습니다 StackOverflow