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

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


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

При оценке постоянного значения для "объявление константы" используется циклическое определение

Объявление переменной const не может ссылаться на другую переменную констант , такую, что формируется циклическая зависимость. Это также относится к связанным константным значениям элементов перечисления.

Пример

Связанное константное значение MyClass.Color.Red явно задано MyClass.Color.Blue, но значение MyClass.Color.Blue зависит от предыдущего элемента перечисления (MyClass.Color.Red), поэтому оба константных значения не могут быть определены. Аналогичным образом константная переменная MyClass.a определяется с точки зрения MyClass.b, но она также определяется с точки зрения MyClass.a.

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

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

Чтобы устранить эту ошибку, разорвать циклическую ссылку, изменив или удалив определение.

См. также