2013-05-26 2 views
9

Во время компиляции я получаю следующую ошибку. Как решить это без необходимости прибегать к различным функциональным именамКак устранить эту ошибку двусмысленного вызова

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 матчей как перегрузки. Вы можете явно указать null классу, который должен сообщить компилятору, какая из двух перегрузок вы вызываете:

if (value == null) 
{ 
    return this.SomeMethodName((SomeClassType)null); 
} 
Смежные вопросы