Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Auswertung des Konstantenwerts für "const-Deklaration" bezieht eine zirkuläre Definition ein.
Die Deklaration einer const-Variablen kann nicht in einer Weise, durch die eine Ringabhängigkeit entsteht, auf eine andere const-Variable verweisen. Dies gilt auch für zugeordnete Konstantenwerte von Enumerationsmembern.
Beispiel
Der zugeordnete Konstantenwert von MyClass.Color.Red ist explizit auf MyClass.Color.Blue festgelegt, der Wert von MyClass.Color.Blue ist jedoch vom vorherigen Enumerationsmember (MyClass.Color.Red) abhängig, sodass beide Konstantenwerte nicht bestimmt werden können. Ebenso wird die Konstantenvariable MyClass.a in Bezug auf MyClass.b definiert, aber auch in Bezug auf MyClass.a.
Im folgenden Beispiel wird CS0110 generiert:
// 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;
}
Um diesen Fehler zu beheben, unterbrechen Sie den Zirkelbezug, indem Sie die Definition ändern oder entfernen.