跳到主要内容

instance_member_access_from_static

实例成员不能从静态方法中访问。

描述

#

当静态方法中包含对实例成员的非限定引用时,分析器会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为在静态方法中引用了实例字段 x

dart
class C {
  int x = 0;

  static int m() {
    return x;
  }
}

常见修复方法

#

如果该方法必须引用实例成员,则它不能是静态方法,因此请删除该关键字

dart
class C {
  int x = 0;

  int m() {
    return x;
  }
}

如果该方法不能成为实例方法,则添加一个参数,以便传入类的实例

dart
class C {
  int x = 0;

  static int m(C c) {
    return c.x;
  }
}