是否期望IEnumerator.MoveNext()
的实现相对较快?或者如果"移动到下一个项目"包括磁盘IO, web请求或其他可能长时间运行的操作?
例如,我正在一个处理文档的项目上工作,并且想要将对文档的访问抽象为IDocumentSource
。IDocumentSource
的一些实现可以简单地从本地文件系统拉文档,在其他地方可以从web服务器下载文档到临时位置打开它们之前。在这种情况下,MoveNext()
将关闭并删除之前的临时文件,然后下载并打开下一个文件进行处理。
没有关于MoveNext()
预期性能的指导方针,例如,不像存在于属性getter中的指导方针。
你的方法看起来很合理。尽管如此,在类/方法文档中包含一个关于行为的说明是明智的。