Erreur du compilateur CS1942
Mise à jour : novembre 2007
Message d'erreur
Le type de l'expression de la clause 'clause' est incorrect. L'inférence de type a échoué lors de l'appel à la méthode 'méthode'.
The type of the expression in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.
Cette erreur est habituellement générée lorsqu'un type explicitd incorrect a été attribué à la variable de portée.
Pour corriger cette erreur
- Si la variable de portée est explicitement typée, vérifiez que le type est identique à celui des éléments de la collection qu'il parcourt ou que le type est implicitement convertible à partir du type de ces éléments. Si la variable de portée est précédée du mot clé var, supprimez var.
Exemple
Le code suivant génère l'erreur 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 est lié à CS1949 car l'utilisation de var avec une variable de portée entraîne l'échec de l'opération Cast<T> sous-jacente car var n'est pas un type.
Voir aussi
Concepts
Expressions de requête LINQ (Guide de programmation C#)