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;
}
}