Пример #1
0
    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();
        }
    }
Пример #2
0
    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));
    }