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