System::Collections::Generic::IEnumerator Klasse

IEnumerator class

Schnittstelle des Enumerators, die verwendet werden kann, um durch einige Elemente zu iterieren. Objekte dieser Klasse sollten nur über die Funktion System::MakeObject() zugewiesen werden. Erstellen Sie niemals eine Instanz dieses Typs auf dem Stack oder mit dem Operator new, da dies zu Laufzeitfehlern und/oder Assertion-Fehlern führt. Wickeln Sie diese Klasse immer in einen System::SmartPtr Zeiger ein und verwenden Sie diesen Zeiger, um ihn als Argument an Funktionen zu übergeben.

template<typename T>class IEnumerator : public virtual System::IDisposable,
                                        public System::Details::EnumeratorBasedIterator<T>,
                                        protected System::Details::IteratorPointerUpdater<T, false>
ParameterBeschreibung
TElementtyp.

Methoden

MethodeBeschreibung
AsVirtualizedIterator()Bereitet den Iterator vor, der von der VirtualizedIterator Klasse verwendet werden soll.
CloneIterator() const overrideKlonen des aktuellen Iterators.
virtual Current() constGibt das aktuelle Element zurück.
virtual get_Current() constGibt das aktuelle Element zurück.
IEnumerator()
IncrementIterator() overrideBewegt den Iterator einen Schritt vorwärts.
InitializeIterator() overrideFührt den ersten Aufruf von MoveNext() aus und bereitet das Enumerator-Objekt für die Verwendung durch VirtualizedIterator vor.
MarkOwnedByVirtualizedIterator()Markiert den vom virtualisierten Iterator besessenen Enumerator.
virtual MoveNext()Bewegt den Enumerator zum nächsten Element. Wenn zuvor kein Element referenziert wurde, wird die Referenz auf das erste verfügbare Element gesetzt. Wird das Ende des Containers erreicht, geschieht nichts.
virtual Reset()Setzt den Enumerator auf die Position vor dem ersten Element zurück.
virtual ~IEnumerator()

Typedefs

Typedef.Beschreibung
ValueTypeWerttyp.

Hinweise

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

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

int main()
{
  // Erstelle die List-Klasseninstanz.
  auto collection = MakeObject<List<int>>();

  // Fülle die Liste.
  collection->Add(1);
  collection->Add(2);
  collection->Add(3);

  // Hole den Enumerator der Liste.
  auto enumerator = collection->GetEnumerator();

  while (enumerator->MoveNext())
  {
    // Hole das aktuelle Element und gib es aus.
    std::cout << enumerator->get_Current() << ' ';
  }

  // Setze den Enumerator zurück.
  enumerator->Reset();

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

Siehe auch