2011-09-08 49 views

回答

4

對於枚舉類型的通用約束在C#中是不可能的,但在IL中是可能的。看一下Jon Skeet的項目Unconstrained Melody,它可以讓你將泛型方法限制爲枚舉。

+0

這是一個如何使用IL而不是庫來做到這一點的例子,讓你自己做這件事,但非常有趣! – Justin

2

在C#中你不行。出於某種原因,我不知道C#規範明確禁止System.Enum作爲約束條件。

即使這樣它也不會接受可爲空的枚舉,因爲可枚舉的枚舉不是枚舉。