测试对象是否为枚举

Ara*_*and 86 c# enums value-type

我想知道'theObject'是否是枚举(任何枚举类型)

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

     //do something
 }
Run Code Online (Sandbox Code Playgroud)

EMP*_*EMP 196

问题是答案.:)

bool isEnum = theObject is Enum;
Run Code Online (Sandbox Code Playgroud)

  • 爱它!更接近问题:if(theObject is Enum){...} (13认同)
  • /*测试*/if(anObject是/*an*/Enum){} (12认同)
  • 用诗歌!尼斯. (5认同)
  • 这甚至不是我来这里的,我给你一个观点.它是如此...干净...... <嗅探>,这是美丽的男人TT (5认同)

Chr*_*ich 60

如果您有Type,请使用该Type.IsEnum属性,例如:

bool isEnum = theObject.GetType().IsEnum;
Run Code Online (Sandbox Code Playgroud)

  • 我实际上需要知道如何检查作为Enum类型的`Type`.+1 (3认同)
  • 这对我有用.我无法弄清楚如何在VB.NET中使接受的答案工作. (2认同)

Lar*_*mie 8

只是用

if (theObject is Enum)
 //is an enum
Run Code Online (Sandbox Code Playgroud)


bug*_*d87 6

对于泛型类型参数,可以对参数进行约束而不是测试:

where T : Enum
Run Code Online (Sandbox Code Playgroud)