Compilerfehler CS1942Compiler Error CS1942

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

Dieser Fehler wird in der Regel generiert, wenn der Bereichsvariable ein falscher expliziter Typ zugewiesen wurde.This error is typically generated when the range variable has been given an incorrect explicit type.

So beheben Sie diesen FehlerTo correct this error

  1. Ist die Bereichsvariable explizit typisiert, vergewissern Sie sich, dass der Typ dem Typ der Elemente in der Auflistung, die sie durchläuft, entweder entspricht oder implizit konvertiert werden kann.If the range variable is explicitly typed, make sure that the type is either the same as, or implicitly convertible from, the type of the elements in the collection it iterates. Ist der Bereichsvariable das Schlüsselwort var vorangestellt, entfernen Sie var.If the range variable is preceded with the var keyword, remove var.

BeispielExample

Durch den folgenden Code wird der Fehler CS1942 ausgelöst:The following code generates CS1942:

// 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 CS1949 zugeordnet, da die Verwendung von var mit einer Bereichsvariable dazu führt, dass der zugrundeliegende Vorgang Cast<T> fehlschlägt, weil var kein Typ ist.CS1942 is related to CS1949 because the use of var with a range variable causes the underlying Cast<T> operation to fail because var is not a type.

Siehe auchSee Also

varvar
LINQ-AbfrageausdrückeLINQ Query Expressions