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

Я пытаюсь сделать следующий метод расширения -> преобразование 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 Ответ

2 голосов
/ 15 декабря 2008

Использовать, где T: struct

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

...