我可以使用WHERE关键字限制此c#扩展方法定义吗?

时间:2008-12-15 13:08:01

标签: .net extension-methods

我正在尝试执行以下扩展方法 - >当你提供枚举时,将int转换为枚举: -

public static T ToEnum<T>(this int value)
{
    return (T)Enum.ToObject(typeof(T), value);
}

现在,我希望能够使它只能将类型T定义为枚举。有什么我可以限制它吗?

例如

int day = 3;
DaysOfWeek dow = day<DaysOfWeek>(); // No compiler error.
DaysOfWeek dow2 = day<Foo>(); // Compiler error.

1 个答案:

答案 0 :(得分:2)

使用Where T:struct

查看此问题 Create Generic method constraining T to an Enum