powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Альтернатива Enum.IsDefined
2 сообщений из 2, страница 1 из 1
Альтернатива Enum.IsDefined
    #32433735
Фотография judge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть ли альтернатива Enum.IsDefined ?

Этот метод достаночно медленный, так как использует reflection и т.п.

Как быстрее всего проверить, что значение входит в enum?
При условии, что значения в enum идут не по-порядку.


Спасибо, Alex
...
Рейтинг: 0 / 0
Альтернатива Enum.IsDefined
    #32434012
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем случае без рефлекшена - именно никак, только ручками.

т.е. для каждого конкретного enum проверять диапазоны

-------------------
(suck)

описываем:

public enum Sample { Diap1_begin, One=Diap1_begin, Two, Three, Diap2_end=Three, ... }

и потом проверяем

------------------
(good)

если же таких энумераций много и все в процессе девелопмента, то можно накатать класс-хелпер и пользоваться IsDefined(Type enumType, object value) этого класса-хелпера.

при этом, если интересующего enum еще не было (не лежит во внутренней хещ-таблицы), то регистрировать интересующий enums (именно с помощью reflection одноразово), разбивать значения этого enum на диапазоны для последующей проверки.


плюсы указанного способа:

typeof(тип) - самая мгновенная операция, т.к. ссылка на описатель - это первый член каждого Object.

ввиду того, что рефлекшн используется лишь одноразово - вполне подходящая схема

заранее никакие enum регистрировать в классе хелпере не надо... регистрирование происходит по мере надобности.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Альтернатива Enum.IsDefined
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]