Вы можете использовать типы перечисления в качестве общих параметров для метода (например, List<EType>
, но вы не можете ограничить универсальные параметры только типами перечисления.
Однако есть приемы, которые можно использовать для почти гарантии того, что в ваших методах будут использоваться только перечисления:
public static T ParseEnum<T>(this string enumValue)
where T : struct, IConvertible
См. Преобразование строки обратно в enum для более полного объяснения и примеров кода.