通用C#方法,将枚举值作为参数

Generic C# method taking where the enum value as a parameter

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Create Generic method constraining T to an Enum

给定只对枚举值执行操作的泛型方法

1
2
3
4
static void <T> method(T enum) where T ?????
{
     // do something with enum...
}

如何约束T,以便只接受枚举值?我尝试过使用struct,但是这不允许使用可为空的枚举类型调用我的方法。


对枚举类型的泛型约束在C中是不可能的,但在IL中是可能的。看看乔恩·斯基特的计划,无约束的旋律,它将允许你约束你的通用方法去枚举。


在C中,您不能这样做。出于某种原因,我不知道C规范明确禁止cx1(0)作为约束。

即使这样,它也不会接受可以为空的枚举,因为可以为空的枚举不是枚举。