示例#1
0
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle(10, 20, 240, 560);
            Console.WriteLine(r.draw());
            r.X = 22;
            r.Height = 236;
            Console.WriteLine(r.draw());

            Circle c = new Circle(10, 20, 24);
            Console.WriteLine(c.draw());
            c.X = 22;
            c.R = 11;
            Console.WriteLine(c.draw());

            Console.WriteLine();

            List<Shape> s = new List<Shape>();
            s.Add(r);
            s.Add(c);
            for (int i = 0; i < s.Count; ++i)
            {
                Console.WriteLine(s[i].draw());  // polymorphic
            }

            Console.ReadKey();
        }
示例#2
0
        /// <summary>
        /// Точка входа
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            //Массив ссылок
            Figure[] Fig = new Figure[6];

            //заполнение массива ссылками на объекты поизводных классов
            Fig[0] = new Circle(7);
            Fig[1] = new Circle(2, 3, 2);
            Fig[2] = new Rectangle();
            Fig[3] = new Rectangle(2, 3, 10, 11);
            Fig[4] = new Triangle();
            Fig[5] = new Triangle(1, 1, -2, 4, -2, -2);

            //Сортируем
            Array.Sort(Fig);

            //Пока не весь массив заполнен ссылками, ловим исключение пустой ссылки 
            try
            {

                //Для каждого объекта 
                foreach (Figure item in Fig)
                {
                    //вызываем метод Show
                    item.Show();
                }
            }

            //ловим исключение
            catch (Exception e)
            {
                //выводим текст исключения
                Console.WriteLine(e.Message);
            }

            //Задерживаем консоль при отладке 
            Console.ReadKey();
        }