IEnumerator: нормально ли иметь пустой метод Dispose? - PullRequest
10 голосов
/ 17 июня 2010

Я пишу класс IEnumerator<T> для итерации по коллекции COM . Я , обертывающий . Я заметил, что IEnumerator<T> расширяет IDisposable, поэтому мне необходимо реализовать метод Dispose.

Тем не менее, я не могу придумать, что бы я там положил, поскольку у меня есть только ссылка на коллекцию (которую я не хотел бы размещать в конце foreach) и int для индекса. Нормально ли оставлять метод Dispose пустым?

1 Ответ

18 голосов
/ 17 июня 2010

Да, это так.

IEnumerator<T> реализует IDisposable на случай, если вы создадите счетчик, который необходимо утилизировать.Поскольку большинство перечислителей не нужно утилизировать, метод обычно будет пустым.

Кстати, вы можете проще реализовать свой IEnumerator, создав итератор .

...