let\'s have this code :
class MyList : IEnumerable, IEnumerator
{
int[] A = { 1, 2, 3, 4, 5 };
int i = -1;
#region IEnumerator Members
pub
The IEnumerable and IEnumerator should generally be separate classes, and except in the case of enumerators that always return empty or always return the same item, the GetEnumerator method must always return a new instance of an IEnumerator.
There isn't much point to IEnumerator.Reset; for-each loops don't use it, and consumers of an IEnumerable/IEnumerator can't use it unless they know what the enumerable type is, in which case they could use the actual type rather than the interface.