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.