فئة System::Collections::Generic::IEnumerator

IEnumerator class

واجهة للعداد يمكن استخدامها للتنقل عبر بعض العناصر. يجب تخصيص كائنات هذه الفئة فقط باستخدام الدالة System::MakeObject(). لا تقم أبدًا بإنشاء نسخة من هذا النوع على المكدس أو باستخدام عامل new، حيث سيؤدي ذلك إلى أخطاء وقت التشغيل و/أو أعطال التأكيد. دائمًا قم بلف هذه الفئة في مؤشر System::SmartPtr واستخدم هذا المؤشر لتمريره إلى الدوال كمعامل.

template<typename T>class IEnumerator : public virtual System::IDisposable,
                                        public System::Details::EnumeratorBasedIterator<T>,
                                        protected System::Details::IteratorPointerUpdater<T, false>
Parameterالوصف
Tنوع العنصر.

الطرق

طريقةالوصف
AsVirtualizedIterator()يجهّز المكرر لاستخدامه من قبل فئة VirtualizedIterator.
CloneIterator() const overrideينسخ المتكرر الحالي.
virtual Current() constيحصل على العنصر الحالي.
virtual get_Current() constيحصل على العنصر الحالي.
IEnumerator()
IncrementIterator() overrideيحرك المكرّر خطوة إلى الأمام.
InitializeIterator() overrideيقوم بالنداء الأول لـ MoveNext() ويجهّز كائن المكرّر لاستخدامه من قبل VirtualizedIterator.
MarkOwnedByVirtualizedIterator()يعلّم المكرّر المملوك للـ virtualized iterator.
virtual MoveNext()ينقل المُعدِّر إلى العنصر التالي. إذا لم يتم الإشارة إلى أي عنصر من قبل، يحدد المرجع إلى أول عنصر متاح. إذا وصل إلى نهاية الحاوية، لا يفعل شيئًا.
virtual Reset()يعيد ضبط العداد إلى الموضع قبل العنصر الأول.
virtual ~IEnumerator()

Typedefs

تعريف نوعالوصف
ValueTypeنوع القيمة.

ملاحظات

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

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

int main()
{
  // أنشئ مثيل فئة List.
  auto collection = MakeObject<List<int>>();

  // املأ القائمة.
  collection->Add(1);
  collection->Add(2);
  collection->Add(3);

  // احصل على المُعدِّد للقائمة.
  auto enumerator = collection->GetEnumerator();

  while (enumerator->MoveNext())
  {
    // احصل على العنصر الحالي واطبعّه.
    std::cout << enumerator->get_Current() << ' ';
  }

  // أعد ضبط المُعدِّد.
  enumerator->Reset();

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

انظر أيضًا