Sdílet prostřednictvím


Compilerfehler CS1940

Aktualisiert: November 2007

Fehlermeldung

Für den Quelltyp "Typ" wurden mehrere Implementierungen des Abfragemusters gefunden. Mehrdeutiger Aufruf von "Methode".
Multiple implementations of the query pattern were found for source type 'type'. Ambiguous call to 'method'.

Dieser Fehler wird ausgelöst, wenn mehrere Implementierungen einer Abfragemethode definiert wurden und der Compiler nicht entscheiden kann, welche sich am besten für die Abfrage eignet. Im folgenden Beispiel haben beide Versionen von Select dieselbe Signatur, da beide einen int als Eingabeparameter akzeptieren und int als Rückgabewert aufweisen.

So beheben Sie diesen Fehler

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

Beispiel

Durch den folgenden Code wird der Fehler CS1940 ausgelöst:

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

Konzepte

Übersicht über Standardabfrageoperatoren