missing_enum_constant_in_switch
缺少 '{0}' 的 case 子句。
描述
#當列舉的 switch 語句未包含列舉中某個值的選項時,分析器會產生此診斷。
請注意,null 始終是列舉的可能值,因此也必須處理。
示例
#以下程式碼會產生此診斷,因為未處理列舉值 e2
dart
enum E { e1, e2 }
void f(E e) {
switch (e) {
case E.e1:
break;
}
}常見修復
#如果對缺失的值有特殊處理,則為每個缺失的值新增一個 case 子句
dart
enum E { e1, e2 }
void f(E e) {
switch (e) {
case E.e1:
break;
case E.e2:
break;
}
}如果缺失的值應以相同方式處理,則新增一個 default 子句
dart
enum E { e1, e2 }
void f(E e) {
switch (e) {
case E.e1:
break;
default:
break;
}
}