IEnumerator<Foo> IEnumerable<Foo>.GetEnumerator() { } public IEnumerator GetEnumerator() { return ((IEnumerable<Foo>)this).GetEnumerator(); }
That's a bad way. Should be:
public IEnumerator<Foo> GetEnumerator() { } public IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }