public static void Main()
string format = "{0, -49} {1, -15}";
object[] values = { null, 16.33, -24, 0, "12", "12.7", String.Empty,
"1String", "True", "false", new System.Collections.ArrayList() };
Console.WriteLine(format, "Object", "ToNullableBoolean");
Console.WriteLine(format, "------", "-----------------");
foreach(var val in values)
Console.Write("{0,-50}", val != null ? String.Format("{0} ({1})", val, val.GetType().Name) : "null");
bool? result = val.ToNullableBoolean();
Console.WriteLine("{0}", result);
Console.WriteLine("Bad Format");
catch (InvalidCastException)
Console.WriteLine("No Conversion");