366    {
  367        if ((object)conversionType == null)
  368        {
  369            throw new ArgumentNullException("conversionType");
  370        }
  372        {
  373            if (conversionType.IsValueType)
  374            {
  375                throw new InvalidCastException(SR.InvalidCast_CannotCastNullToValueType);
  376            }
  377            return null;
  378        }
  379        if (!(
value is IConvertible convertible))
 
  380        {
  381            if (
value.GetType() == conversionType)
 
  382            {
  384            }
  385            throw new InvalidCastException(SR.InvalidCast_IConvertible);
  386        }
  388        {
  389            return convertible.ToBoolean(provider);
  390        }
  392        {
  393            return convertible.ToChar(provider);
  394        }
  396        {
  397            return convertible.ToSByte(provider);
  398        }
  400        {
  401            return convertible.ToByte(provider);
  402        }
  404        {
  405            return convertible.ToInt16(provider);
  406        }
  408        {
  409            return convertible.ToUInt16(provider);
  410        }
  412        {
  413            return convertible.ToInt32(provider);
  414        }
  416        {
  417            return convertible.ToUInt32(provider);
  418        }
  420        {
  421            return convertible.ToInt64(provider);
  422        }
  424        {
  425            return convertible.ToUInt64(provider);
  426        }
  428        {
  429            return convertible.ToSingle(provider);
  430        }
  432        {
  433            return convertible.ToDouble(provider);
  434        }
  436        {
  437            return convertible.ToDecimal(provider);
  438        }
  440        {
  441            return convertible.ToDateTime(provider);
  442        }
  444        {
  445            return convertible.ToString(provider);
  446        }
  448        {
  450        }
  451        return convertible.ToType(conversionType, provider);
  452    }
static readonly Type[] ConvertTypes