문제

이 메소드 선언으로 (과부하 없음) :

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으로 변환합니다.

형벌은 없을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top