System::Collections::Generic::IEnumerator Klasse

IEnumerator class

Interface eines Enumerators, der verwendet werden kann, um durch einige Elemente zu iterieren. Objekte dieser Klasse sollten nur mit der Funktion System::MakeObject() alloziert werden. Erstellen Sie niemals eine Instanz dieses Typs auf dem Stack oder mit dem Operator new, da dies zu Laufzeitfehlern und/oder Assertionsfehlern führt. Wickeln Sie diese Klasse stets 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() constRuft das aktuelle Element ab.
virtual get_Current() constRuft das aktuelle Element ab.
IEnumerator()
IncrementIterator() overrideBewegt den Iterator einen Schritt vorwärts.
InitializeIterator() overrideFührt den ersten Aufruf von MoveNext() aus und bereitet das Enumerator‑Objekt zur 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. Wenn das Ende des Containers erreicht ist, geschieht nichts.
virtual Reset()Setzt den Enumerator auf die Position vor dem ersten Element zurück.
virtual ~IEnumerator()

Typedefs

TypedefBeschreibung
ValueTypeWerttyp.

Hinweise

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

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

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

  // Füllt 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