Condividi tramite


Errore del compilatore CS0110

Il calcolo del valore della costante per 'dichiarazione const' implica una definizione circolare

La dichiarazione di una variabile const non può fare riferimento a un'altra variabile const affinché venga creata una dipendenza circolare. Questo vale anche per i valori costanti associati dei membri dell’enumerazione.

Esempio

Il valore costante associato di MyClass.Color.Red è impostato in modo esplicito su MyClass.Color.Blue, ma il valore di MyClass.Color.Blue dipende dal membro di enumerazione precedente (MyClass.Color.Red), pertanto non è possibile determinare entrambi i valori costanti. Analogamente, la variabile MyClass.a costante viene definita in termini di MyClass.b, ma è definita anche in termini di MyClass.a.

L'esempio seguente genera l'errore 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;
}

Per risolvere questo errore, interrompere il riferimento circolare modificando o rimuovendo la definizione.

Vedi anche