コード例 #1
0
        public override void Print()
        {
            Console.WriteLine("----------------MENU:---------------------");
            Console.WriteLine("{0}, {1}", GetName(), GetDescription());
            Console.WriteLine("-----------------------------------------");

            //Print Menus & SubMenus
            MenuIterator menuIterator = new MenuIterator(menuComponents);

            while (menuIterator.HasNext())
            {
                MenuComponent component = (MenuComponent)menuIterator.Next();
                Console.WriteLine("Component Retrived: {0}", component.GetType().Name);
                component.Print(); //Printing Individual Component(Also through this class.)
            }
        }
コード例 #2
0
        public Object Next()
        {
            if (HasNext())
            {
                Iterator      iterator  = (Iterator)stack.Peek();
                MenuComponent component = (MenuComponent)iterator.Next();

                if (component.GetType() == typeof(Menu))
                {
                    stack.Push(component.CreateIterator());
                }
                return(component);
            }
            else
            {
                return(null);
            }
        }