This class provides static helper methods that convert base
data types to other base data types. You can also convert
objects to base data types, provided they implement the
IConvertible interface and cast
objects to different types with the
CLR languages such as C# typically allow widening conversions (e.g.,
Int32) through direct assignment.
Narrowing conversions require the
class or explicit casting. The
class does not generate an exception when you lose numeric
precision, but it does throw an overflow exception if the source
value is too large for the destination data type.
Note that implicit and explicit conversions in C# can return
different results than the
Namely, they truncate significant digits in a narrowing
conversion (for example, changing 32.6 to the integer 32), while the
Convert class rounds the number
automatically (converting 32.6 to 33). The
Convert class uses banker’s rounding,
meaning that the fraction 1/2 is rounded down for even numbers
(so 4.5 becomes 4) and rounded up for odd numbers (so 5.5 becomes 6).
This helps combat rounding bias.
ToString() methods are
functionally equivalent to the
Object.ToString() method of the
corresponding base data types. The conversions from strings to
numeric or date data are functionally equivalent to the
Parse() method of the appropriate
data type (e.g.,
Int32.Parse()). For string
conversions, you can also supply an
IFormatProvider object ...