跳到主要内容

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