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); } }