فئة 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>
معاملالوصف
Tنوع العنصر.

الطرق

طريقةالوصف
AsVirtualizedIterator()يجهز المتكرر للاستخدام من قبل فئة VirtualizedIterator.
CloneIterator() const overrideينسخ المكرِّر الحالي.
virtual Current() constيحصل على العنصر الحالي.
virtual get_Current() constيحصل على العنصر الحالي.
IEnumerator()
IncrementIterator() overrideيحرك المكرّر خطوة إلى الأمام.
InitializeIterator() overrideيقوم بالاتصال الأول لـ MoveNext() ويجهز كائن العدّاد للاستخدام من قبل VirtualizedIterator.
MarkOwnedByVirtualizedIterator()يعلّم العدّاد المملوك للمتكرر الافتراضي.
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
*/

انظر أيضًا