Ler em inglês

Partilhar via


Erro do compilador CS0110

A avaliação do valor constante da «declaração de const» envolve uma definição circular

A declaração de uma variável const não pode fazer referência a outra variável const de tal forma que uma dependência circular é formada. Isto também se aplica aos valores constantes associados dos membros enum.

Exemplo

O valor constante associado de MyClass.Color.Red é explicitamente definido como MyClass.Color.Blue, mas o valor de é dependente do membro enum MyClass.Color.Blue anterior (MyClass.Color.Red), portanto, ambos os valores constantes não podem ser determinados. Da mesma forma, a variável MyClass.a constante é definida em termos de MyClass.b, mas isso também é definido em termos de MyClass.a.

O exemplo a seguir gera 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;
}

Para resolver esse erro, quebre a referência circular modificando ou removendo a definição.

Consulte também