Dispose

Метод Dispose используется для очистки итерации приведением объекта перечислителя в состояние after.

· Если состояние объекта перечислителя before, вызов Dispose меняет это состояние на after.

· Если состояние объекта перечислителя running, результат вызова Dispose не определен.

· Если состояние объекта перечислителя suspended, при вызове Dispose:

o состояние меняется на running;

o выполняются все блоки finally, как если бы последний выполненный оператор yield return был оператором yield break. Если это приводит к инициированию и распространению из тела итератора исключения, состояние объекта перечислителя устанавливается в after, а исключение распространяется до объекта, вызвавшего метод Dispose;

o состояние меняется на after.

· Если состояние объекта перечислителя after, вызов Dispose не оказывает влияние.