首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Dart 2中将枚举类型作为参数传递

在Dart 2中将枚举类型作为参数传递
EN

Stack Overflow用户
提问于 2018-09-04 01:16:40
回答 1查看 4.2K关注 0票数 6

就像将类类型作为参数传递给方法一样,我想要传递枚举,因为我想编写一个在枚举上操作的通用方法。

我试过了:

代码语言:javascript
复制
  void foo(E):
    print(E.values[0])

但它不起作用。

有什么办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-04 01:29:48

这可能对你有用

代码语言:javascript
复制
typedef EnumValues<T> = List<T> Function();

void main() {
  foo<E1>(() => E1.values);
  foo<E2>(() => E2.values);
}

enum E1 { a, b }
enum E2 { c, d }

void foo<T>(EnumValues<T> valuesFn) {
  var values = valuesFn();
  for (var v in values) {
    print(v);
  }
}

请参阅备注-简短版本

代码语言:javascript
复制
void main() {
  foo<E1>(E1.values);
  foo<E2>(E2.values);
}

enum E1 { a, b }
enum E2 { c, d }

void foo<T>(List<T> values) {
  for (var v in values) {
    print(v);
  }
  print(values[0]);
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52154008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档