Me preguntaba por qué Enumerable.Range
implementa IDisposable
.¿Por qué Enumerable.Range Implement IDisposable?
Entiendo por qué IEnumerator<T>
lo hace, pero IEnumerable<T>
no lo requiere.
(descubrí esto mientras jugando con mi .Memoise (aplicación), que tiene declaración como
if (enumerable is IDisposable)
((IDisposable)enumerable).Dispose();
en su método "fuente de acabado" que había colocado un punto de interrupción en por curiosidad, y fue desencadenada por una prueba.)
http://csharpindepth.com/articles/chapter6/iteratorblockimplementation.aspx –