Lezen in het Engels

Delen via


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.

Deze fout corrigeren

  1. Geef een expliciet type op voor de variabele.
  2. U kunt ook natuurlijke typen opgeven met C#-versie 10 en hoger.

Opmerking

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;  
    }  
}  

Zie ook