0

如果我有一个定义了 setter 的类,我如何引用然后生成的方法作为来自该类实例的函数。规范表明它将是变量 + '=" 的 id (似乎很愚蠢),但这不会解析。

例如:

class Bar {

  set foo(int value) {
  //whatever
  }
}

typedef F(int value);

void main() {
  F f = new Bar().foo=; //Fails, but what should this be??
  f(5);
}
4

1 回答 1

2

设置器已命名foo=,但这不是您可以以您想要的方式引用的东西。即使查看 dart:mirrors MethodMirror(对象方法的镜像,包括 setter)也无法调用它。您可以轻松地将其重写为:

class Bar {

  set foo(int value) {
  //whatever
  }
}

typedef F(int value);

void main() {
  Bar b = new Bar();
  F f = (int value) => b.foo = value;
  f(5);
}
于 2012-09-22T00:25:33.630 回答