Erreur du compilateur CS1941
Mise à jour : novembre 2007
Message d'erreur
Le type de l'une des expressions 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 one of the expressions in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.
L'inférence de type dans les expressions de requête découle du type des éléments des sources de données.
Pour corriger cette erreur
- Si la cause de l'erreur n'est pas immédiatement évidente, examinez attentivement la requête et suivez le type du résultat de chaque clause, de la source de données jusqu'à l'erreur.
Exemple
Le code suivant génère l'erreur CS1941 car l'opérateur equals doit comparer int à string.
// cs1941.cs
using System.Collections;
using System.Linq;
class Test
{
static int Main()
{
var nums = new[] { 1, 2, 3, 4, 5, 6 };
var words = new string[] { "lake", "mountain", "sky" };
IEnumerable e = from n in nums
join w in words on n equals w // CS1941
select w;
return 0;
}
}
La méthode dans laquelle l'inférence de type échoue est la méthode vers laquelle la clause de requête est traduite lors de la compilation.