Partager via


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#)

Référence

var (Référence C#)