Прочитать на английском

Поделиться через


Ошибка компилятора CS0815

Невозможно назначить "выражение" неявно типизированной локальной переменной

Выражение, которое используется в качестве инициализатора для неявно типизированной переменной, должно иметь тип. Поскольку выражения анонимных функций, выражения групп методов и выражение литерала null не имеют типа, они не используются в качестве инициализаторов. Нельзя инициализировать неявно типизированную переменную со значением null в ее объявлении, хотя потом ей можно назначить значение null. В C# версии 10 Лямбда-выражений и групп методов с естественными типами можно использовать в объявлениях в var качестве инициализаторов.

Исправление ошибки

  1. Предоставьте явный тип для переменной.
  2. Или укажите естественные типы с C# версии 10 и выше.

Пример

Следующий код приводит к возникновению ошибки 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;  
    }  
}  

См. также