我有以下通用函数:限制的通用功能,只工作在枚举
public SomeType SomeFunction<T>(T value)
{
}
我现在想限制这种通用的功能只能Enum
工作其实如此我尝试了以下内容:
public SomeType SomeFunction<T>(T value) where T : System.Enum
{
}
,但是这导致:
错误CS0702:约束不能 小号特殊'系统.Enum'
是否有工作和好奇心没有人知道为什么这种类型的约束是不被允许的原因?
你应该看看接受的答案之前在Ani提到的愚蠢。这是C#语言的限制,而不是CLR(例如,可以限制为F#中的enum)。 Unconstrained Melody库提供了一种解决方法,以允许C#本身的枚举约束:http://code.google.com/p/unconstrained-melody/ – LukeH 2010-11-19 10:47:45