我有以下通用函數:限制的通用功能,只工作在枚舉
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