2013-05-26 35 views
9

Pojawia się następujący błąd podczas kompilacji. Jak mogę go rozwiązać bez konieczności uciekania się do różnych nazw funkcjiJak rozwiązać ten niejednoznaczny błąd wywołania

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

Odpowiedz

16

Kompilator jest zdezorientowany, bo null mecze zarówno przeciążeń. Możesz jawnie rzucić null do klasy, która musi dać kompilatorowi znać, które z dwóch przeciążeń, które wywołujesz:

if (value == null) 
{ 
    return this.SomeMethodName((SomeClassType)null); 
} 
Powiązane problemy