Sdílet prostřednictvím


Compilerfehler CS1942

Aktualisiert: November 2007

Fehlermeldung

Der Typ des Ausdrucks in der "Klausel"-Klausel ist falsch. Fehler beim Typrückschluss im Aufruf von "Methode".
The type of the expression in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.

Dieser Fehler wird im Allgemeinen ausgelöst, wenn der Bereichsvariablen ein falscher expliziter Typ zugewiesen wurde.

So beheben Sie diesen Fehler

  • Wenn die Bereichsvariable explizit typisiert wird, müssen Sie sicherstellen, dass ihr Typ dem Typ der Elemente in der Auflistung, die sie durchläuft, entspricht bzw. implizit daraus konvertiert werden kann. Falls der Bereichsvariablen das var-Schlüsselwort vorausgeht, entfernen Sie var.

Beispiel

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

// cs1942.cs
class Program
    {
        static void Main(string[] args)
        {
            var x = from var i in Enumerable.Range(1, 100) // CS1949
                    select i; //CS1942
        }
    }

CS1942 ist verwandt mit CS1949, da die Verwendung von var mit einer Bereichsvariablen zu einem Fehler beim zugrunde liegenden Cast<T>-Vorgang führt, da var kein Typ ist.

Siehe auch

Konzepte

LINQ-Abfrageausdrücke (C#-Programmierhandbuch)

Referenz

var (C#-Referenz)