Freigeben über


Compilerfehler CS0110

Die Auswertung des Konstantenwerts für "const-Deklaration" bezieht eine zirkuläre Definition ein.

Die Deklaration einer const-Variablen kann nicht in einer Weise, durch die eine Ringabhängigkeit entsteht, auf eine andere const-Variable verweisen. Dies gilt auch für zugeordnete Konstantenwerte von Enumerationsmembern.

Beispiel

Der zugeordnete Konstantenwert von MyClass.Color.Red ist explizit auf MyClass.Color.Blue festgelegt, der Wert von MyClass.Color.Blue ist jedoch vom vorherigen Enumerationsmember (MyClass.Color.Red) abhängig, sodass beide Konstantenwerte nicht bestimmt werden können. Ebenso wird die Konstantenvariable MyClass.a in Bezug auf MyClass.b definiert, aber auch in Bezug auf MyClass.a.

Im folgenden Beispiel wird CS0110 generiert:

// CS0110.cs
// compile with: /target:library
class MyClass
{
    enum Color
    {
        Red = Blue,   // CS0110
        Blue,
    }

    public const int a = b + 1;   // CS0110
    public const int b = a + 1;
}

Um diesen Fehler zu beheben, unterbrechen Sie den Zirkelbezug, indem Sie die Definition ändern oder entfernen.

Siehe auch