Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0110

Ocena stałej wartości dla "deklaracji const" obejmuje definicję cykliczną

Deklaracja zmiennej const nie może odwoływać się do innej zmiennej const, tak aby utworzyć zależność cykliczną. Dotyczy to również skojarzonych wartości stałych elementów członkowskich wyliczenia.

Przykład

Skojarzona wartość stałej MyClass.Color.Red jest jawnie ustawiona na MyClass.Color.Blue, ale wartość MyClass.Color.Blue elementu jest zależna od poprzedniego elementu wyliczenia (MyClass.Color.Red), dlatego nie można określić obu wartości stałych. Podobnie zmienna MyClass.a stała jest definiowana w kategoriach MyClass.b, ale jest ona również zdefiniowana pod względem MyClass.a.

Poniższy przykład generuje CS0110:

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

Aby rozwiązać ten błąd, należy przerwać odwołanie cykliczne, modyfikując lub usuwając definicję.

Zobacz też