如何解决为什么需要处理枚举器?
根据公认的答案,C# 中的 Enumerator disposal when not using using,foreach or manually calling Dispose() 枚举器必须在完成后处理,无论您是让 foreach
自动执行此操作,还是您自己执行此操作,如果您更愿意通过以下方式写出等效逻辑手。
我没想到会这样;会认为枚举器将由垃圾收集器处理。我猜是这样的:
-
为了正确处理这种情况,框架设计者决定只让枚举器实现
Idisposable
,所以契约是它们应该总是被处理掉;对于字符串、数组和列表等内存中的集合,这将是一个空操作,但它使整体设计比尝试使某些类型的枚举器实现不同的接口更简单。
这是正确的,还是我遗漏了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。