Compilerfout CS0815
Kan 'expressie' niet toewijzen aan een impliciet getypt lokaal
Een expressie die wordt gebruikt als initialisatiefunctie voor een impliciet getypte variabele, moet een type hebben. Omdat anonieme functie-expressies, methodegroepexpressies en de letterlijke expressie null geen type hebben, zijn ze niet de juiste initialisatiefuncties. Een impliciet getypte variabele kan niet worden geïnitialiseerd met een null-waarde in de declaratie, hoewel deze later een waarde van null kan worden toegewezen.
Met C#-versie 10 Lambda-expressies en methodegroepen met natuurlijke typen kunnen worden gebruikt als initialisatiefunctie in var
declaraties.
- Geef een expliciet type op voor de variabele.
- U kunt ook natuurlijke typen opgeven met C#-versie 10 en hoger.
Met de volgende code wordt CS0815 gegenereerd:
// 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;
}
}
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: