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両方のオーバーロードに一致するため、コンパイラは混乱します。null2 つのオーバーロードのどちらを呼び出しているかをコンパイラに知らせるために、必要なクラスに明示的にキャストできます。

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