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

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


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

Неявно типизированные переменные не могут иметь несколько деклараторов.

В объявлениях, в которых тип задается явным образом, можно использовать несколько операторов объявления, однако в случае неявно типизированных переменных этого делать нельзя.

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

Доступно три параметра:

  1. Если переменные имеют одинаковый тип, используйте явные объявления.
  2. Объявите каждую неявно типизированную локальную переменную и присвойте ей значение в отдельной строке.
  3. Объявите переменную с помощью синтаксиса деконструкции кортежа . Примечание. Этот параметр не будет работать внутри инструкции using , так как Tuple не реализуется IDisposable.

Пример 1

Следующий код приводит к возникновению ошибки CS0819:

// cs0819.cs
class Program
{
    public static void Main()
    {
        var a = 3, b = 2; // CS0819

        // First correction option.
        //int a = 3, b = 2;

        // Second correction option.
        //var a = 3;
        //var b = 2;

        // Third correction option.
        //var (a, b) = (3, 2);
    }
}

Пример 2

Следующий код приводит к возникновению ошибки CS0819:

// cs0819.cs
class Program
{
    public static void Main()
    {
        using (var font1 = new Font("Arial", 10.0f),
            font2 = new Font("Arial", 10.0f)) // CS0819
        {
        }

        // First correction option.
        //using (Font font1 = new Font("Arial", 10.0f),
        //    font2 = new Font("Arial", 10.0f))
        //{
        //}

        // Second correction option.
        //using (var font1 = new Font("Arial", 10.0f)
        //{
        //    using (var font2 = new Font("Arial", 10.0f)
        //    {
        //    }
        //}
    }
}

См. также