Проверить, является ли объект Enum


91

Я хотел бы знать, является ли 'theObject' перечислением (любого типа перечисления)

 foreach (var item in Enum.GetValues(theObject.GetType())) {

     //do something
 }

Ответы:


207

Вопрос есть ответ. :)

bool isEnum = theObject is Enum;

14
Любить это! И даже ближе к вопросу: if (theObject is Enum) {...}
Питер Лиллевольд

6
Я пришел сюда даже не для этого, и я ставлю вам точку. Это так ... чисто ... <sniff>, это красивый мужчина TT
Лукас

13
/ * Тест * / if (anObject is / * an * / Enum) {}
Tom Fobear

bool isEnum = theObject.GetType (). IsEnum; лучше, Enum не всегда возвращает истину
Крис Ху

69

Если у вас есть Type, используйте Type.IsEnumсвойство, например:

bool isEnum = theObject.GetType().IsEnum;

2
Это сработало для меня. Я не мог понять, как заставить принятый ответ работать в VB.NET.
Shea Daniels,

4
Мне действительно нужно было знать, как проверить, является ли Typeон типом Enum. +1
Натан


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.