public static IConvertible CheckNumericPromotion(IConvertible convertible) { if (IsPromotableNumeric(convertible.GetTypeCode())) return convertible; throw new InvalidCastException(); }