> IEnumerator<T> IEnumerator<T>.GetEnumerator()
> {
[quoted text clipped - 6 lines]
> IEnumerator<T> which
> contain a Current method and a MoveNext method.
Yup.
> Now to my question if I instead have a method that return an IEnumerable
> like the Reverse below.
[quoted text clipped - 8 lines]
> yield return data[i];
> }
Again, it generates another class. In fact, that new class will
implement IEnumerable<T>, IEnumerable, IEnumerator<T>, IEnumerator and
IDisposable. The important thing is that it implements IEnumerable<T>
though, as that's what you've said that your method will return. The
details of *exactly* how it implements IEnumerable<T> and IEnumerator
<T> at the same time usually aren't important.

Signature
Jon Skeet - <skeet@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
World class .NET training in the UK: http://iterativetraining.co.uk