IEnumerator содержит MoveNext(), Reset() и Current в качестве своих членов. Теперь предположим, что я перенес эти методы и свойства в интерфейс IEnumerable и удалил метод GetEnumerator() и IEnumerator.
Теперь объект класса, который реализует IEnumerable, сможет получить доступ к методам и свойству и, следовательно, может быть повторен.
- Почему вышеупомянутый подход не последовал и проблемы, с которыми я столкнусь если я последую этому?
- Каким образом наличие интерфейса
IEnumeratorустраняет эти проблемы?