System::Collections::Generic::IEnumerator sınıfı
IEnumerator class
Bazı öğeler üzerinde yineleme yapmak için kullanılabilecek bir enumerator arayüzü. Bu sınıfın nesneleri yalnızca System::MakeObject() işlevi kullanılarak tahsis edilmelidir. Bu tipin örneğini yığına (stack) ya da operator new ile 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 sarmalayın ve bu işaretçiyi fonksiyonlara argüman olarak geçirin.
template<typename T>class IEnumerator : public virtual System::IDisposable,
public System::Details::EnumeratorBasedIterator<T>,
protected System::Details::IteratorPointerUpdater<T, false>
| Parametre | Açıklama |
|---|
| T | Eleman tipi. |
Yöntemler
| Yöntem | Açıklama |
|---|
| AsVirtualizedIterator() | İteratörü VirtualizedIterator sınıfı tarafından kullanılmak üzere hazırlar. |
| CloneIterator() const override | Mevcut yineleyiciyi klonlar. |
| virtual Current() const | Geçerli öğeyi alır. |
| virtual get_Current() const | Geçerli öğeyi alır. |
| IEnumerator() | |
| IncrementIterator() override | Yineleyiciyi bir adım ileri hareket ettirir. |
| InitializeIterator() override | İlk MoveNext() çağrısını yapar ve enumeratör nesnesini VirtualizedIterator tarafından kullanılmak üzere hazırlar. |
| MarkOwnedByVirtualizedIterator() | Sanal yineleyiciye ait enumeratörü işaretler. |
| virtual MoveNext() | Enumerator’ı bir sonraki elemana taşır. Daha önce bir elemana referans verilmemişse, referansı mevcut ilk elemana ayarlar. Eğer konteyner sonuna gelinmişse, hiçbir şey yapmaz. |
| virtual Reset() | Enumeratörü ilk öğeden önceki konuma sıfırlar. |
| virtual ~IEnumerator() | |
Typedefs
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 enumeratörünü al.
auto enumerator = collection->GetEnumerator();
while (enumerator->MoveNext())
{
// Mevcut öğeyi al ve yazdır.
std::cout << enumerator->get_Current() << ' ';
}
// Enumeratörü sıfırla.
enumerator->Reset();
return 0;
}
/*
This code example produces the following output:
1 2 3
*/
Ayrıca Bakınız