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)