跳到主要內容

field_initialized_in_parameter_and_initializer

欄位不能同時在引數列表和初始化列表中初始化。

描述

#

當欄位在建構函式的引數列表和初始化列表中都被初始化時,分析器會生成此診斷資訊。

示例

#

以下程式碼會產生此診斷資訊,因為欄位 f 同時透過初始化形參和在初始化列表中被初始化。

dart
class C {
  int f;

  C(this.f) : f = 0;
}

常見修復方法

#

如果欄位應該透過引數初始化,則移除初始化列表中的初始化。

dart
class C {
  int f;

  C(this.f);
}

如果欄位應該在初始化列表中初始化且不需要該引數,則移除該引數。

dart
class C {
  int f;

  C() : f = 0;
}

如果欄位應該在初始化列表中初始化但需要該引數,則將其更改為普通引數。

dart
class C {
  int f;

  C(int g) : f = g * 2;
}