undefined_enum_constructor
列舉沒有名為 '{0}' 的建構函式。
列舉沒有未命名的建構函式。
描述
#當用於初始化列舉值的建構函式不存在時,分析器會生成此診斷資訊。
示例
#以下程式碼會生成此診斷資訊,因為列舉值 c 正由未命名的建構函式初始化,但在 E 中沒有定義未命名的建構函式
dart
enum E {
c();
const E.x();
}以下程式碼會生成此診斷資訊,因為列舉值 c 正由名為 x 的建構函式初始化,但在 E 中沒有定義名為 x 的建構函式
dart
enum E {
c.x();
const E.y();
}常見修復
#如果列舉值正由未命名的建構函式初始化,並且應該使用其中一個命名建構函式,則新增建構函式的名稱
dart
enum E {
c.x();
const E.x();
}如果列舉值正由未命名的建構函式初始化,並且現有命名建構函式都不合適,則定義未命名的建構函式
dart
enum E {
c();
const E();
}如果列舉值正由命名建構函式初始化,並且應該使用其中一個現有建構函式,則更改被呼叫的建構函式的名稱(如果應該使用未命名的建構函式,則刪除該名稱)
dart
enum E {
c.y();
const E();
const E.y();
}如果列舉值正由命名建構函式初始化,並且現有建構函式都不應該使用,則定義一個具有所使用名稱的建構函式
dart
enum E {
c.x();
const E.x();
}