Проверка, если параметр поддерживает нулевое отражение
bool canBeNull = !type.IsValueType || (Nullable.GetUnderlyingType(type) != null);
Annoying Ape
bool canBeNull = !type.IsValueType || (Nullable.GetUnderlyingType(type) != null);