public static void Main() { object[] values = { 103.5d, new DateTime(2010, 12, 26, 14, 34, 0) }; IFormatProvider provider = new InterceptProvider(); // Convert value to each of the types represented in TypeCode enum. foreach (object value in values) { // Iterate types in TypeCode enum. foreach (TypeCode enumType in ((TypeCode[])Enum.GetValues(typeof(TypeCode)))) { if (enumType == TypeCode.DBNull || enumType == TypeCode.Empty) { continue; } try { Console.WriteLine("{0} ({1}) --> {2} ({3}).", value, value.GetType().Name, Convert.ChangeType(value, enumType, provider), enumType.ToString()); } catch (InvalidCastException) { Console.WriteLine("Cannot convert a {0} to a {1}", value.GetType().Name, enumType.ToString()); } catch (OverflowException) { Console.WriteLine("Overflow: {0} is out of the range of a {1}", value, enumType.ToString()); } } Console.WriteLine(); } }
public static void Test() { int n = 10; double value = 16.935; DateTime day = DateTime.Now; InterceptProvider provider = new InterceptProvider(); Console.WriteLine(String.Format(provider, "{0:N0}: {1:C2} on {2:d}\n", n, value, day)); Console.WriteLine(String.Format(provider, "{0}: {1:F}\n", "Today: ", (DayOfWeek)DateTime.Now.DayOfWeek)); Console.WriteLine(String.Format(provider, "{0:X}, {1}, {2}\n", (Byte)2, (Byte)12, (Byte)199)); Console.WriteLine(String.Format(provider, "{0:R}, {1:R}, {2:R}\n", (Byte)2, (Byte)12, (Byte)199)); }