System::Collections::Generic::IEnumerator class

IEnumerator class

Interfaccia dell’enumeratore che può essere usata per iterare attraverso alcuni elementi. Gli oggetti di questa classe devono essere allocati solo usando la funzione System::MakeObject(). Non creare mai un’istanza di questo tipo sullo stack o usando l’operatore new, poiché ciò provocherà errori di runtime e/o fallimenti di asserzione. Avvolgere sempre questa classe in un puntatore System::SmartPtr e usare questo puntatore per passarlo alle funzioni come argomento.

template<typename T>class IEnumerator : public virtual System::IDisposable,
                                        public System::Details::EnumeratorBasedIterator<T>,
                                        protected System::Details::IteratorPointerUpdater<T, false>
ParametroDescrizione
TTipo di elemento.

Metodi

MetodoDescrizione
AsVirtualizedIterator()Prepara l’iteratore per essere usato dalla classe VirtualizedIterator.
CloneIterator() const overrideClona l’iteratore corrente.
virtual Current() constRestituisce l’elemento corrente.
virtual get_Current() constRestituisce l’elemento corrente.
IEnumerator()
IncrementIterator() overrideSposta l’iteratore avanti di un passo.
InitializeIterator() overrideEsegue la prima chiamata a MoveNext() e prepara l’oggetto enumeratore per essere usato da VirtualizedIterator.
MarkOwnedByVirtualizedIterator()Segna l’enumeratore posseduto dall’iteratore virtualizzato.
virtual MoveNext()Sposta l’enumeratore al prossimo elemento. Se non è stato referenziato alcun elemento prima, imposta il riferimento al primo elemento disponibile. Se si raggiunge la fine del contenitore, non fa nulla.
virtual Reset()Reimposta l’enumeratore alla posizione precedente al primo elemento.
virtual ~IEnumerator()

Typedefs

TypedefDescrizione
ValueTypeTipo valore.

Osservazioni

#include <system/collections/list.h>
#include <system/smart_ptr.h>

using namespace System;
using namespace System::Collections::Generic;

int main()
{
  // Crea l'istanza della classe List.
  auto collection = MakeObject<List<int>>();

  // Riempi la lista.
  collection->Add(1);
  collection->Add(2);
  collection->Add(3);

  // Ottieni l'enumeratore della lista.
  auto enumerator = collection->GetEnumerator();

  while (enumerator->MoveNext())
  {
    // Ottieni l'elemento corrente e stampalo.
    std::cout << enumerator->get_Current() << ' ';
  }

  // Reimposta l'enumeratore.
  enumerator->Reset();

  return 0;
}
/*
This code example produces the following output:
1 2 3
*/

Vedi anche