IEnumerator:有一个空的Dispose方法是正常的吗?

C. *_*oss 11 .net ienumerator idisposable

我正在编写一个IEnumerator<T>类来迭代我正在包装COM集合.我注意到了扩展,所以我需要实现该方法. IEnumerator<T>IDisposableDispose

但是,我想不出我会放在那里的任何东西,因为我只有一个对集合的引用(我不希望它被放在一个结尾处foreach),以及一个int索引.将Dispose方法留空是否正常?

SLa*_*aks 19

是的.

IEnumerator<T>工具IDisposable的情况下,你让那确实需要设置一个枚举.由于大多数枚举器不需要处理,因此该方法通常是空的.

顺便说一句,您可以IEnumerator通过创建迭代器来更轻松地实现.

  • 顺便说一下,`yield`是`IEnumerator <T>`实现`IDisposable`的原因之一 - `using`语句或`finally`块进入`Dispose`. (2认同)