public static void Main()
object date = "06 July 2008 7:32:47 AM";
string format = "{0, -30} {1, -15} {2, -15}";
Console.WriteLine(format, "Object", "To", "Value");
Console.WriteLine(format, "------", "--", "-----");
var result1 = val1.ToOrDefault<int>();
var result2 = val2.ToOrDefault<double>();
var result3 = date.ToOrDefault<DateTime>();
var result4 = str.ToOrDefault<string>();
var result5 = str.ToOrDefault<int>(0);
Console.WriteLine(format, val1, result1.GetTypeCode(), result1);
Console.WriteLine(format, val2, result2.GetTypeCode(), result2);
Console.WriteLine(format, date, result3.GetTypeCode(), result3);
Console.WriteLine(format, str, result4.GetTypeCode(), result4);
Console.WriteLine(format, str, result5.GetTypeCode(), result5);