コード例 #1
0
        static void Main(string[] args)
        {
            // Criando dados para testes
            AgregadoConcreto a = new AgregadoConcreto();

            a[0] = "Item A";
            a[1] = "Item B";
            a[2] = "Item C";
            a[3] = "Item D";

            var meuObjetoA = new ClasseA();

            meuObjetoA.nome   = "Antonio";
            meuObjetoA.numero = 10;
            a[4] = meuObjetoA;

            var meuObjetoB = new ClasseB();

            meuObjetoB.nome   = "Chico";
            meuObjetoB.numero = 20;
            a[5] = meuObjetoB;

            // Criar iterador de fornecer agregado

            // Iterador meuIterador = new IteradorConcreto(a);
            Iterador meuIterador = a.CriarIterador();

            Console.WriteLine("Iteração sobre a coleção: ");

            object item = meuIterador.Primeiro();

            while (item != null)
            {
                // Para os objetos complexos irá imprimir apenas a referência para a sua classe
                Console.WriteLine(item.ToString());
                item = meuIterador.Proximo();
            }

            // Aguardar o usuário digitar algo para fechar a tela
            Console.ReadKey();
        }