System::Collections::Generic::IEnumerator class
IEnumerator class
Antarmuka enumerator yang dapat digunakan untuk mengiterasi beberapa elemen. Objek dari kelas ini hanya boleh dialokasikan menggunakan fungsi System::MakeObject(). Jangan pernah membuat instance tipe ini di stack atau menggunakan operator new, karena akan menyebabkan kesalahan runtime dan/atau kegagalan asersi. Selalu bungkus kelas ini ke dalam pointer System::SmartPtr dan gunakan pointer tersebut untuk meneruskan ke fungsi sebagai argumen.
template<typename T>class IEnumerator : public virtual System::IDisposable,
public System::Details::EnumeratorBasedIterator<T>,
protected System::Details::IteratorPointerUpdater<T, false>
| Parameter | Deskripsi |
|---|
| T | Tipe elemen. |
Metode
| Metode | Deskripsi |
|---|
| AsVirtualizedIterator() | Mempersiapkan iterator untuk digunakan oleh kelas VirtualizedIterator. |
| CloneIterator() const override | Mengkloning iterator saat ini. |
| virtual Current() const | Mendapatkan elemen saat ini. |
| virtual get_Current() const | Mendapatkan elemen saat ini. |
| IEnumerator() | |
| IncrementIterator() override | Memindahkan iterator satu langkah maju. |
| InitializeIterator() override | Melakukan pemanggilan pertama MoveNext() dan mempersiapkan objek enumerator untuk digunakan oleh VirtualizedIterator. |
| MarkOwnedByVirtualizedIterator() | Menandai enumerator yang dimiliki oleh virtualized iterator. |
| virtual MoveNext() | Memindahkan enumerator ke elemen berikutnya. Jika tidak ada elemen yang direferensikan sebelumnya, mengatur referensi ke elemen pertama yang tersedia. Jika akhir kontainer tercapai, tidak melakukan apa‑apa. |
| virtual Reset() | Mengatur ulang enumerator ke posisi sebelum elemen pertama. |
| virtual ~IEnumerator() | |
Typedefs
Catatan
#include <system/collections/list.h>
#include <system/smart_ptr.h>
using namespace System;
using namespace System::Collections::Generic;
int main()
{
// Buat instance kelas List.
auto collection = MakeObject<List<int>>();
// Isi daftar.
collection->Add(1);
collection->Add(2);
collection->Add(3);
// Dapatkan enumerator dari daftar.
auto enumerator = collection->GetEnumerator();
while (enumerator->MoveNext())
{
// Dapatkan elemen saat ini dan cetak.
std::cout << enumerator->get_Current() << ' ';
}
// Reset enumerator.
enumerator->Reset();
return 0;
}
/*
This code example produces the following output:
1 2 3
*/
Lihat Juga