static void Main(string[] args)
        {
            try {
                ShapeManager sm = new ShapeManager();
                sm.add(new Rectangle(5, 4));
                sm.add(new Circle(3));
                sm.add(new Elipse(3, 3));
                sm.add(new Rectangle(5, 6));
                sm.add(new Elipse(6, 8));
                sm.add(new Circle(4));
                sm.DisplayAll();
                Shape         s  = sm[0];
                Rectangle     r  = (Rectangle)s;
                StringBuilder sb = new StringBuilder();
                sm.Save(sb);
                Console.WriteLine(sb.ToString());

                Rectangle r1 = (Rectangle)sm[0];
                Rectangle r2 = (Rectangle)sm[3];
                Console.WriteLine(r2.CompareTo(r1));
                Elipse e1 = (Elipse)sm[2];
                Elipse e2 = (Elipse)sm[4];
                Console.WriteLine(e2.CompareTo(e1));
                Circle c1 = (Circle)sm[1];
                Circle c2 = (Circle)sm[5];
                Console.WriteLine(c1.CompareTo(e1));
                c1.Display();


                Console.WriteLine(sm.Count);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }
        }