12

我在编译时收到以下错误。如何解决它而不必求助于不同的函数名称

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());  
}
4

1 回答 1

18

编译器很困惑,因为null匹配两个重载。您可以显式null转换为您需要让编译器知道您正在调用的两个重载中的哪一个:

if (value == null)
{
    return this.SomeMethodName((SomeClassType)null);
}
于 2013-05-26T00:49:35.997 回答