Могу ли я ограничить это определение метода расширения c # ключевым словом WHERE?

я пытаюсь сделать следующий метод расширения -> преобразование 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.
15.12.2008 13:08:01
1 ОТВЕТ
РЕШЕНИЕ

Используйте Где T: структура

Посмотрите этот вопрос. Создайте общий метод, ограничивающий T перечислением

2
23.05.2017 12:13:33