দুটোই ইন্টারফেস কিন্তু ভূমিকা আলাদা:
- IEnumerable: শুধু
GetEnumerator()মেথড থাকে। এটি একটি ইনিউমারেটর ফেরত দেয়।foreachলুপের জন্য প্রয়োজনীয়। - IEnumerator:
MoveNext(),Reset()মেথড এবংCurrentপ্রোপার্টি থাকে। এটি কালেকশনের মাধ্যমে কাসর নেভিগেট করে।
ইমপ্লিমেন্টেশন উদাহরণ
class Demo : IEnumerable, IEnumerator
{
// IEnumerable মেথড
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
public object Current
{
get { throw new NotImplementedException(); }
}
// IEnumerator মেথড
public bool MoveNext()
{
throw new NotImplementedException();
}
public void Reset()
{
throw new NotImplementedException();
}
}
সাধারণত IEnumerable ইমপ্লিমেন্ট করলে GetEnumerator()-এ নতুন IEnumerator রিটার্ন করা হয়।