Name
Convert
Synopsis
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
ChangeType()
method.
CLR languages such as C# typically allow widening conversions (e.g.,
Int16
to
Int32
) through direct assignment.
Narrowing conversions require the Convert
class or explicit casting. The Convert
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 Convert
class.
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.
The 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 ...
Get C# in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.