Lire en anglais

Partager via


Erreur du compilateur CS0110

L’évaluation de la valeur de constante de 'const declaration' implique une définition circulaire

La déclaration d’une variable const ne peut pas référencer une autre variable const de manière à ce qu’une dépendance circulaire soit formée. Cela s’applique également aux valeurs constantes associées de membres enum.

Exemple

La valeur constante associée de MyClass.Color.Red est explicitement définie sur MyClass.Color.Blue, mais la valeur de MyClass.Color.Blue dépend du membre enum précédent (MyClass.Color.Red). Les deux valeurs constantes ne peuvent donc pas être déterminées. De même, la variable constante MyClass.a est définie en termes de MyClass.b, mais elle est également définie en termes de MyClass.a.

L’exemple suivant génère l’erreur 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;
}

Pour résoudre cette erreur, arrêtez la référence circulaire en modifiant ou en supprimant la définition.

Voir aussi