Re: Логика работы интерфейса IEnumerator и foreach
От: Lloyd Россия  
Дата: 04.06.03 14:23
Оценка:
Здравствуйте, Власенко Анатолий Юрьевич, Вы писали:

ВАЮ>Доброе время суток!


ВАЮ>Из книг по C# (имеющихся у меня) и MSDN мне непонятен принцип

ВАЮ>работы конструкции foreach с объектом класса, реализующего
ВАЮ>интерфейс IEnumerator.

ВАЮ>Конкретная проблема заключается в непонимании мной необходимости

ВАЮ>реализации метода Reset интерфейса IEnumerator.
ВАЮ>Т.е. должен ли я вызывать метод Reset самостоятельно, например из
ВАЮ>метода MoveNext, либо foreach сделает это автоматически?

ВАЮ>К этому вопросу подтолкнуло неожиданное (для меня) поведение

ВАЮ>конструкции foreach, т.к. первый проход по элементам класса,
ВАЮ>реализующего IEnumerator проходит как и ожидается, следующи же
ВАЮ>вызов foreach не дает результатов, т.к. метод Reset не вызывался.

ВАЮ>Заранее спасибо!!!


Нет, Reset не вызывается.
Но если Энумератор реализует IDisposable, то Dispose вызывается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.