Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS1940

Pro typ zdroje "type" bylo nalezeno více implementací vzoru dotazu. Nejednoznačné volání metody.

Tato chyba se vygeneruje, když je definováno více implementací metody dotazu a kompilátor nemůže určit, který z nich je nejvhodnější použít pro dotaz. V následujícím příkladu mají obě verze Select stejný podpis, protože obě přijímají jeden int jako vstupní parametr a mají int jako návratovou hodnotu.

Oprava této chyby

  1. Pro každou metodu zadejte pouze jednu implementaci.

Příklad

Následující kód vygeneruje CS1940:

// cs1940.cs  
using System; //must include explicitly for types defined in 3.5  
class Test  
{  
    public delegate int Dele(int x);  
    int num = 0;  
    public int Select(Func<int, int> d)  
    {  
        return d(this.num);  
    }  
    public int Select(Dele d) // CS1940  
    {  
        return d(this.num) + 1;  
    }  
    public static void Main()  
    {  
        var q = from x in new Test()  
        select x;  
    }  
}  

Viz také