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.
- Ange en explicit typ för variabeln.
- Eller ange naturliga typer med C#-version 10 och senare.
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;
}
}
Feedback om .NET
.NET är ett öppen källkod projekt. Välj en länk för att ge feedback: