System::Collections::Generic::IEnumerator klasse

IEnumerator class

Interface van enumerator die kan worden gebruikt om door enkele elementen te itereren. Objecten van deze klasse mogen alleen worden gealloceerd met de functie System::MakeObject(). Maak nooit een instantie van dit type op de stack of met de operator new, omdat dit zal leiden tot runtime‑fouten en/of assertiefouten. Wrap deze klasse altijd in een System::SmartPtr‑pointer en gebruik deze pointer om deze als argument door te geven aan functies.

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

Methoden

MethodeBeschrijving
AsVirtualizedIterator()Bereidt de iterator voor om te worden gebruikt door de VirtualizedIterator klasse.
CloneIterator() const overrideKloont de huidige iterator.
virtual Current() constHaalt het huidige element op.
virtual get_Current() constHaalt het huidige element op.
IEnumerator()
IncrementIterator() overrideVerplaatst de iterator één stap vooruit.
InitializeIterator() overrideVoert de eerste MoveNext() oproep uit en bereidt het enumerator‑object voor om te worden gebruikt door VirtualizedIterator.
MarkOwnedByVirtualizedIterator()Markeert de enumerator die eigendom is van de gevirtualiseerde iterator.
virtual MoveNext()Verplaatst de enumerator naar het volgende element. Als er eerder geen element werd gerefereerd, wordt de referentie ingesteld op het eerste beschikbare element. Als het einde van de container is bereikt, gebeurt er niets.
virtual Reset()Reset de enumerator naar de positie vóór het eerste element.
virtual ~IEnumerator()

Typedefs

TypedefBeschrijving
ValueTypeWaarde‑type.

Opmerkingen

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

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

int main()
{
  // Maak de List‑klasse‑instantie aan.
  auto collection = MakeObject<List<int>>();

  // Vul de lijst.
  collection->Add(1);
  collection->Add(2);
  collection->Add(3);

  // Haal de enumerator van de lijst op.
  auto enumerator = collection->GetEnumerator();

  while (enumerator->MoveNext())
  {
    // Haal het huidige element op en druk het af.
    std::cout << enumerator->get_Current() << ' ';
  }

  // Reset de enumerator.
  enumerator->Reset();

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

Zie ook