【发布时间】:2012-03-01 16:05:07
【问题描述】:
我刚从 C# 中的 Generics 开始,但很早就遇到了问题,如何在通用 Enum 上调用 .HasFlag()?
public class Example<TEnum> where TEnum : struct {
}
如何添加[Flags] 属性?
【问题讨论】:
-
简而言之,你不能。约束不考虑泛型参数的属性。你必须通过反思来强制执行。
-
类型参数应该以
T开头;您应该将GenericEnum更改为TEnum。 -
你能举个例子@M.Babcock 吗?并正式指出,@SLaks
-
如果你愿意,你也可以使用John Skeet's library来强制枚举约束。
-
@AnuragRanjhan 上面的库链接返回 404 错误。能更新一下吗?
标签: c# generics enums enum-flags