Antworten:
EDIT: Ich werde diese Antwort offen lassen, da sie funktionieren wird, und sie zeigt einige Anrufe, von denen die Leser sonst vielleicht nichts wissen. Allerdings ist Lukes Antwort definitiv besser - stimmen Sie ab :)
Du kannst tun:
public static bool IsNullableEnum(this Type t)
{
return t.IsGenericType &&
t.GetGenericTypeDefinition() == typeof(Nullable<>) &&
t.GetGenericArguments()[0].IsEnum;
}
public static bool IsNullable(this Type type)
{
return type.IsClass
|| (type.IsGeneric && type.GetGenericTypeDefinition == typeof(Nullable<>));
}
Ich habe die IsEnum
Prüfung, die Sie bereits durchgeführt haben, weggelassen, da dies diese Methode allgemeiner macht.