我如何在C#中检查类型是否为可为空的枚举,例如
Type t = GetMyType();
bool isEnum = t.IsEnum; //Type member
bool isNullableEnum = t.IsNullableEnum(); How to implement this extension method?
Answers:
编辑:我将保留此答案,因为它将起作用,它演示了一些读者可能不知道的电话。但是,卢克的答案肯定更好-请投票:)
你可以做:
public static bool IsNullableEnum(this Type t)
{
return t.IsGenericType &&
t.GetGenericTypeDefinition() == typeof(Nullable<>) &&
t.GetGenericArguments()[0].IsEnum;
}