Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La evaluación del valor constante para 'const declaration' comprende una definición circular
La declaración de una variable const no puede hacer referencia a otra variable const de modo que se forme una dependencia circular. Esto también se aplica a los valores de constantes asociadas de los miembros de enumeración.
Ejemplo
El valor de la constante asociada de MyClass.Color.Red se establece explícitamente en MyClass.Color.Blue, pero el valor de MyClass.Color.Blue depende del miembro anterior de enumeración (MyClass.Color.Red), por lo que no se pueden determinar ambos valores de la constante. Del mismo modo, la variable de constante MyClass.a se define en términos de MyClass.b, pero también se define en términos de MyClass.a.
El ejemplo siguiente genera la advertencia 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 este error, interrumpa la referencia circular modificando o quitando la definición.