跳到主要內容

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