【发布时间】:2011-08-23 13:24:19
【问题描述】:
调用IEnumerator.Reset的正确方法是什么?
文档说:
Reset方法用于 COM 互操作性。它不一定需要实施;相反,实现者可以简单地抛出一个NotSupportedException。
好的,这是否意味着我不应该调用它?
如此很想使用异常来进行流控制:
using (enumerator = GetSomeExpensiveEnumerator())
{
while (enumerator.MoveNext()) { ... }
try { enumerator.Reset(); } //Try an inexpensive method
catch (NotSupportedException)
{ enumerator = GetSomeExpensiveEnumerator(); } //Fine, get another one
while (enumerator.MoveNext()) { ... }
}
这就是我们应该使用它的方式吗?或者我们根本不打算从托管代码中使用它?
【问题讨论】:
-
请永远不要使用异常来控制流...
标签: c# .net ienumerator