93

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

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

     //do something
 }
4

4 回答 4

214

问题就是答案。:)

bool isEnum = theObject is Enum;
于 2010-05-27T06:04:39.347 回答
73

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

bool isEnum = theObject.GetType().IsEnum;
于 2010-05-27T06:00:58.483 回答
8

只需使用

if (theObject is Enum)
 //is an enum
于 2010-05-27T06:08:30.057 回答
5

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

where T : Enum
于 2020-03-18T20:06:24.523 回答