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>
| Parametro | Descrizione |
|---|
| T | Tipo di elemento. |
Metodi
| Metodo | Descrizione |
|---|
| AsVirtualizedIterator() | Prepara l’iteratore per essere usato dalla classe VirtualizedIterator. |
| CloneIterator() const override | Clona l’iteratore corrente. |
| virtual Current() const | Restituisce l’elemento corrente. |
| virtual get_Current() const | Restituisce l’elemento corrente. |
| IEnumerator() | |
| IncrementIterator() override | Sposta l’iteratore avanti di un passo. |
| InitializeIterator() override | Esegue 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
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