编译器错误 CS0110
“const declaration”的常量值计算涉及循环定义
const 变量的声明不能引用另一个 const 变量,以免形成循环依赖关系。 这也适用于枚举成员的关联常量值。
MyClass.Color.Red
的关联常量值显式设置为 MyClass.Color.Blue
,但 MyClass.Color.Blue
的值取决于以前的枚举成员 (MyClass.Color.Red
),因此无法确定这两个常量值。 同样,常量变量 MyClass.a
依据 MyClass.b
定义,但也依据 MyClass.a
来定义。
下面的示例生成 CS0110:
C#
// 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;
}
若要解决此错误,请通过修改或删除定义来中断循环引用。