Обобщения и Перечисления - PullRequest
1 голос
/ 01 июля 2011

Как использовать (ограничение) Enumeration как параметр generic в .NET?

Я использовал что-то вроде

Public Function GetEnumStringValues(Of EType As {Structure, _ 
                   IComparable, IConvertible, IFormattable})() As List(Of String)

, но это не хорошо.

Ответы [ 2 ]

3 голосов
/ 01 июля 2011

Вы можете использовать типы перечисления в качестве общих параметров для метода (например, List<EType>, но вы не можете ограничить универсальные параметры только типами перечисления.

Однако есть приемы, которые можно использовать для почти гарантии того, что в ваших методах будут использоваться только перечисления:

public static T ParseEnum<T>(this string enumValue)
    where T : struct, IConvertible

См. Преобразование строки обратно в enum для более полного объяснения и примеров кода.

2 голосов
/ 01 июля 2011

Боюсь, что это невозможно.

Было запрошено .

У Джона Скита есть обходной путь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...