Ejemplo n.º 1
0
        private static void testGenericInterface()
        {
            Int32 x = 1, y = 2;
            IComparable <Int32> c      = x;

            // CompareTo ожидает Object,
            // но вполне допустимо передать переменную y типа Int32
            c.CompareTo(y); // Выполняется упаковка
            // CompareTo ожидает Int32,
            // передача "2" (тип String) приводит к ошибке компиляции
            // с сообщением о невозможности привести тип String к Int32
            // c.CompareTo("2"); // Ошибка

            Number n = new Number();
            // Значение n сравнивается со значением 5 типа Int32
            IComparable <Int32> cInt32 = n;
            Int32 result = cInt32.CompareTo(5);
            // Значение n сравнивается со значением "5" типа String
            IComparable <String> cString = n;

            result = cString.CompareTo("5");

            MarioPizzeria mp = new MarioPizzeria();

            // Эта строка вызывает открытый метод GetMenu класса MarioPizzeria
            mp.GetMenu();
            // Эти строки вызывают метод IWindow.GetMenu
            IWindow window = mp;

            window.GetMenu();
            // Эти строки вызывают метод IRestaurant.GetMenu
            IRestaurant restaurant = mp;

            restaurant.GetMenu();

            SomeValueType v  = new SomeValueType(0);
            Object        o  = new Object();
            Int32         n1 = v.CompareTo(v); // Без упаковки
            // n1 = v.CompareTo(o); // Ошибка компиляции
        }
Ejemplo n.º 2
0
 public Int32 CompareTo(SomeValueType other)
 {
     return(m_x - other.m_x);
 }