System::Collections::Generic::IEnumerator sınıfı

IEnumerator class

Enumerator arayüzü, bazı öğeler üzerinde yineleme yapmak için kullanılabilir. Bu sınıfın nesneleri yalnızca System::MakeObject() işlevi kullanılarak ayrılmalıdır. Bu türün örneğini yığına (stack) ya da new operatörüyle asla oluşturmayın, çünkü çalışma zamanı hatalarına ve/veya doğrulama hatalarına yol açar. Bu sınıfı her zaman System::SmartPtr işaretçisine sarın ve bu işaretçiyi fonksiyonlara argüman olarak geçirmek için kullanın.

template<typename T>class IEnumerator : public virtual System::IDisposable,
                                        public System::Details::EnumeratorBasedIterator<T>,
                                        protected System::Details::IteratorPointerUpdater<T, false>
ParameterAçıklama
TÖğe türü.

Yöntemler

YöntemAçıklama
AsVirtualizedIterator()VirtualizedIterator sınıfı tarafından kullanılmak üzere yineleyiciyi hazırlar.
CloneIterator() const overrideMevcut yineleyiciyi kopyalar.
virtual Current() constGeçerli öğeyi alır.
virtual get_Current() constGeçerli öğeyi alır.
IEnumerator()
IncrementIterator() overrideYineleyiciyi bir adım ileri hareket ettirir.
InitializeIterator() overrideİlk MoveNext() çağrısını yapar ve enumerator nesnesini VirtualizedIterator tarafından kullanılmak üzere hazırlar.
MarkOwnedByVirtualizedIterator()Virtualized iterator tarafından sahip olunan enumerator’ı işaretler.
virtual MoveNext()Enumerator’ı bir sonraki öğeye taşır. Daha önce hiçbir öğe referans alınmamışsa, referansı mevcut ilk öğeye ayarlar. Eğer konteyner sonuna gelinmişse, hiçbir şey yapmaz.
virtual Reset()Sayacı ilk öğeden önceki konuma sıfırlar.
virtual ~IEnumerator()

Typedefs

TypedefAçıklama
ValueTypeDeğer türü.

Açıklamalar

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

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

int main()
{
  // List sınıfı örneğini oluştur.
  auto collection = MakeObject<List<int>>();

  // Listeyi doldur.
  collection->Add(1);
  collection->Add(2);
  collection->Add(3);

  // Listenin yineleyicisini alın.
  auto enumerator = collection->GetEnumerator();

  while (enumerator->MoveNext())
  {
    // Geçerli öğeyi alın ve yazdırın.
    std::cout << enumerator->get_Current() << ' ';
  }

  // Yineleyiciyi sıfırlayın.
  enumerator->Reset();

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

Ayrıca Bakınız