测试对象是否为枚举

时间:2010-05-27 06:00:02

标签: c# enums value-type

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

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

     //do something
 }

4 个答案:

答案 0 :(得分:190)

问题是答案。 :)

bool isEnum = theObject is Enum;

答案 1 :(得分:58)

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

bool isEnum = theObject.GetType().IsEnum;

答案 2 :(得分:7)

只需使用

if (theObject is Enum)
 //is an enum

答案 3 :(得分:2)

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

where T : Enum