Läs på engelska

Dela via


Kompilatorfel CS0815

Det går inte att tilldela "uttryck" till en implicit inskriven lokal

Ett uttryck som används som initialiserare för en implicit typvariabel måste ha en typ. Eftersom anonyma funktionsuttryck, metodgrupputtryck och null-literaluttrycket inte har någon typ, är de inte lämpliga initialiserare. Det går inte att initiera en implicit typvariabel med ett null-värde i deklarationen, även om den senare kan tilldelas värdet null. Med C# version 10 kan Lambda-uttryck och metodgrupper med naturliga typer användas som initialiserare i var deklarationer.

Så här åtgärdar du det här felet

  1. Ange en explicit typ för variabeln.
  2. Eller ange naturliga typer med C#-version 10 och senare.

Exempel

Följande kod genererar 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;  
    }  
}  

Se även