Possible to constrain generic type to enums?
本问题已经有最佳答案,请猛点这里访问。
我有一个通用类
我试过了
1 | public class Foo<T> where T : enum // COMPILATION ERROR |
但这种方法似乎只适用于
同样,试图将
1 | public class Foo<T> where T : int // COMPILATION ERROR |
因为
编辑我现在意识到类似的问题已经发布过,最终这个问题可以被删除。这是一个与我的问题更相关的问题,也包含如下相同的答案。
更新2018年9月13日,在最新的minor c版本7.3中,现在可以将泛型类型约束到
这在C规范和实现中无效,但它在IL中。
乔恩·斯基特制作了一个图书馆,以避开这种被称为"无约束旋律:
https://code.google.com/p/unconstrained-melody/
虽然我从未使用过它,所以我无法提供任何洞察如何利用它。