[This was originally posted at
http://timstall.dotnetdevelopersjournal.com/converting_to_a_string.htm]
In web development, we constantly need to get string values (from objects of different data types) that we can display to the user. For example, ints, dates, bool, and even custom objects eventually need to be rendered as some string. There are different ways to handle this conversion, but I think one of them is best.
//Fail if type is wrong, such as an integer
//Compile error: Cannot convert type 'int' to 'string'
string s1 = (string)i;
//Fails if object is null
string s2 = i.ToString();
string s3 = Convert.ToString(i);
As the code snippet shows, there are at least three standard ways: (1) casting, (2) calling the ToString method - which every object has, and (3) using the System.Convert class. I think the third way is often the best because the first will throw a compile error if the the object is an incompatible type (like converting a value type int), and the second will fail at run time if the object is null (not possible with value types like integers, but very likely with other reference types). However, using System.Convert handles both of these cases - you can convert value types and handle null instances of reference types. This lets you use a consistent approach for your conversions.