Compilerfehler CS0819

Implizit typisierte Variablen dürfen nicht mehrere Deklaratoren aufweisen.

In expliziten Typdeklarationen sind mehrere Deklaratoren, aber nicht mit implizit typisierten Variablen erlaubt.

So beheben Sie diesen Fehler

Drei Optionen stehen zur Verfügung:

  1. Wenn die Variablen denselben Typ aufweisen, verwenden Sie explizite Deklarationen.
  2. Sie sollten die Deklaration und Wertzuweisung jeder implizit typisierten lokalen Variablen in einer separaten Zeile vornehmen.
  3. Deklarieren Sie eine Variable mit der Syntax für die Tupeldekonstruktion. Hinweis: Diese Option funktioniert nicht innerhalb einer using-Anweisung, da IDisposable von Tuple nicht implementiert wird.

Beispiel 1

Durch den folgenden Code wird der Fehler CS0819 ausgelöst:

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

Beispiel 2

Durch den folgenden Code wird der Fehler CS0819 ausgelöst:

// 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)
        //    {
        //    }
        //}
    }
}

Siehe auch