編譯器錯誤 CS0110
'const declaration' 常數值的評估牽涉循環定義
const 變數的宣告無法參考另一個 const 變數,因此會形成循環相依性。 這也適用於列舉成員的相關聯常數值。
MyClass.Color.Red
的相關聯常數值明確設定為 MyClass.Color.Blue
,但 MyClass.Color.Blue
的值相依於先前的列舉成員 (MyClass.Color.Red
),因此無法判斷這兩個常數值。 同樣地,常數變數 MyClass.a
是以 MyClass.b
來定義,但也會以 MyClass.a
來定義。
下列範例會產生 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;
}
若要解決此錯誤,請修改或移除定義來中斷循環參考。