Compilerfehler CS0110
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.
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.
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: