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>
ParameterDeskripsi
TTipe elemen.

Metode

MetodeDeskripsi
AsVirtualizedIterator()Mempersiapkan iterator untuk digunakan oleh kelas VirtualizedIterator.
CloneIterator() const overrideMengkloning iterator saat ini.
virtual Current() constMendapatkan elemen saat ini.
virtual get_Current() constMendapatkan elemen saat ini.
IEnumerator()
IncrementIterator() overrideMemindahkan iterator satu langkah maju.
InitializeIterator() overrideMelakukan 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

TypedefDeskripsi
ValueTypeTipe nilai.

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