Lire en anglais

Partager via


Erreur du compilateur CS0815

Impossible d’assigner 'expression' à une variable locale implicitement typée

Une expression utilisée comme initialiseur d’une variable implicitement typée doit avoir un type. Étant donné que les expressions de fonction anonyme, les expressions de groupe de méthode et l’expression de littéral null n’ont pas de type, elles ne constituent pas des initialiseurs appropriés. Une variable implicitement typée ne peut pas être initialisée avec une valeur null dans sa déclaration, mais une valeur null peut lui être assignée ultérieurement. Avec les expressions lambda et les groupes de méthodes C# version 10, il est possible d’utiliser des types naturels comme initialiseurs dans les déclarations var.

Pour corriger cette erreur

  1. Fournissez un type explicite pour la variable.
  2. Vous pouvez également spécifier des types naturels avec C# version 10 et ultérieure.

Exemple

Le code suivant génère l’erreur CS0815 :

// cs0815.cs  
class Test  
{  
    public static int Main()  
    {  
        var d = s => -1; // CS0815  
        var e = (string s) => 0; // CS0815 for C# versions before 10
        var p = null; // CS0815  
        var del = delegate(string a) { return -1; }; // CS0815  
        return -1;  
    }  
}  

Voir aussi