跳到主要內容

重複建構函式

名稱為 '{0}' 的建構函式已定義。

未命名建構函式已定義。

描述

#

當一個類聲明瞭多個未命名建構函式或多個同名建構函式時,分析器會生成此診斷資訊。

示例

#

以下程式碼會生成此診斷資訊,因為存在兩個未命名建構函式的宣告

dart
class C {
  C();

  C();
}

以下程式碼會生成此診斷資訊,因為存在兩個名為 m 的建構函式的宣告

dart
class C {
  C.m();

  C.m();
}

常見修復方法

#

如果存在多個未命名建構函式且所有這些建構函式都需要,則為它們全部或除一個以外的所有建構函式命名

dart
class C {
  C();

  C.n();
}

如果存在多個未命名建構函式且除一個以外的所有建構函式都不需要,則移除不需要的建構函式

dart
class C {
  C();
}

如果存在多個命名建構函式且所有這些建構函式都需要,則重新命名除一個以外的所有建構函式

dart
class C {
  C.m();

  C.n();
}

如果存在多個命名建構函式且除一個以外的所有建構函式都不需要,則移除不需要的建構函式

dart
class C {
  C.m();
}