Freigeben über


Compilerfehler CS1940

Für den Quelltyp "Typ" wurden mehrere Implementierungen des Abfragemusters gefunden. Mehrdeutiger Aufruf von "Methode".

Dieser Fehler wird generiert, wenn mehrere Implementierungen einer Abfragemethode definiert sind, und der Compiler nicht eindeutig ermitteln kann, welche am besten für die Abfrage verwendet werden soll. Im folgenden Beispiel haben beide Versionen von Select dieselbe Signatur, da beide ein int als Eingabeparameter akzeptieren und int als Rückgabewert haben.

So beheben Sie diesen Fehler

  1. Stellen Sie nur eine Implementierung für jede Methode bereit.

Beispiel

Mit dem folgenden Code wird CS1940 generiert:

// 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;  
    }  
}  

Siehe auch