Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.