Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0815

Nie można przypisać wyrażenia do niejawnie wpisanego lokalnego

Wyrażenie, które jest używane jako inicjator dla niejawnie typizowanej zmiennej, musi mieć typ. Ponieważ anonimowe wyrażenia funkcji, wyrażenia grupy metod i wyrażenie literału null nie mają typu, nie są one odpowiednimi inicjatorami. Niejawnie typizowanej zmiennej nie można zainicjować z wartością null w deklaracji, chociaż później można przypisać jej wartość null. W języku C# w wersji 10 wyrażenia lambda i grupy metod z typami naturalnymi mogą być używane jako inicjatory w var deklaracjach.

Aby poprawić ten błąd

  1. Podaj jawny typ zmiennej.
  2. Możesz też określić typy naturalne w języku C# w wersji 10 lub nowszej.

Przykład

Poniższy kod generuje 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;  
    }  
}  

Zobacz też