有人给我一个类型t。
我想知道该类型是否是枚举。
public bool IsEnumeration(Type t)
{
// Mystery Code.
throw new NotImplementedException();
}
public void IsEnumerationChecker()
{
Assert.IsTrue(IsEnumeration(typeof(Color)));
Assert.IsFalse(IsEnumeration(typeof(float)));
}
答案 0 :(得分:10)
您还可以使用Type
上的媒体资源IsEnum
进行检查:
Type t = typeof(DayOfWeek);
bool isEnum = t.IsEnum;
答案 1 :(得分:3)
您可以通过多种方式实现这一目标:
return typeof(Enum).IsAssignableFrom(t) && t != typeof(Enum);
或
return typeof(Enum).IsAssignableFrom(t) && t.IsValueType;
或(现在我在检查IsValueType
时看到了it exists)
return t.IsEnum;
显然后者是最好的方法,但前两个会给你提示如何处理类似情况。