2013-05-26 4 views
9

컴파일 타임에 다음 오류가 발생합니다. 어떻게 때문에 null 경기 모두 오버로드를 다른 함수 이름이 모호한 호출 오류를 해결하는 방법

private double SomeMethodName(SomeClassType value) 
{   
    return 0.0; 
} 
private double SomeMethodName(ADifferentClassType value) 
{ 
    if (value == null) 
    { 
     return this.SomeMethodName(null); //<- error 
    } 
    return this.SomeMethodName(new SomeClassType()); 
} 

답변

16

컴파일러는 혼란에 의지하지 않고이를 해결 않습니다. 당신은 명시 적으로 컴파일러가 알 수 있도록 필요한 클래스에 null을 캐스팅 할 수있는 두 과부하 당신은 요구하고있다 :

if (value == null) 
{ 
    return this.SomeMethodName((SomeClassType)null); 
} 
관련 문제