Из документов на IEnumerator.Reset
:
Метод сброса предусмотрен для взаимодействия COM. Это не обязательно должно быть реализовано; вместо этого разработчик может просто вызвать исключение NotSupportedException.
Очень редко можно найти метод Reset
, который делает что-либо, кроме как генерировать исключение. Все типы Linq throw (например, здесь ), и сгенерированные компилятором IEnumerators также throw (смотрите здесь ).
Учитывая, что IAsyncEnumerator
никогда не будет взаимодействовать с COM, и учитывая, что в дикой природе не будет никакого кода C #, который полагается на возможность Reset
IEnumerator, зачем добавлять подобный метод в IAsyncEnumerator
который всегда будет реализован с помощью исключения?