public static bool IsNullable(this Type self) { Check.Self (self); if (!self.IsValueType || !self.IsGenericType) return false; return self.IsGenericTypeDefinition ? false : self.GetGenericTypeDefinition () == typeof (Nullable<>); }