Возможные дубликаты:
Кто-нибудь знает хороший способ обхода нехватки enum generic constraint?
Создать общий метод, ограничивающий T до Enum
Возможно ли ограничить параметр родового типа [я не знаю, соответствует ли это правильному имени] Enum
?
Например, как мне сделать что-то подобное?
//VB.NET
Function GetValues(Of T As System.Enum)(ByVal value As T) As IEnumerable(Of T)
Return [Enum].GetValues(value.GetType)
End Function
//C#
public IEnumerable<T> GetValues<T>(T value) where T : System.Enum
{
return Enum.GetValues(value.GetType());
}
Обновить
В конце концов я использовал Jon Skeet Unconstrained Melody для этой цели. Спасибо вам всем за ваш вклад.