C# 在以下情况下如何重置IEnumerator实例
在以下情况下,如何重置IEnumerator实例?(e.Reset()抛出NotImplementedException)C# 在以下情况下如何重置IEnumerator实例,c#,.net,C#,.net,在以下情况下,如何重置IEnumerator实例?(e.Reset()抛出NotImplementedException) void Main() { IEnumerator e=新列表{“a”、“b”、“c”}。选择(o=>o)。GetEnumerator(); while(如MoveNext()) { 控制台写入线(e.当前); } 如果( //某些条件 ) { e、 重置(); while(如MoveNext()) { //用e.Current做些别的事情 } } } 因为该方法的“实现
void Main()
{
IEnumerator e=新列表{“a”、“b”、“c”}。选择(o=>o)。GetEnumerator();
while(如MoveNext())
{
控制台写入线(e.当前);
}
如果(
//某些条件
)
{
e、 重置();
while(如MoveNext())
{
//用e.Current做些别的事情
}
}
}
因为该方法的“实现”如下所示:
public void Reset() {
throw new NotImplementedException();
}
供参考:
为COM互操作性提供了重置方法。事实并非如此
必须加以实施;相反,实现者可以
只需抛出一个NotSupportedException
在这种情况下,所使用的异常类型是该建议的偏差。查看解释如下:
为COM互操作性提供了重置方法。事实并非如此
必须加以实施;相反,实现者可以
只需抛出一个NotSupportedException
及
实现者注意:所有重置调用必须导致相同的状态
对于枚举器。首选的实现是移动
枚举数到集合的开头,在第一个
要素如果已删除集合,则这将使枚举数无效
自创建枚举数以来已修改,这与
移动下一个和当前
也:
public void Reset() {
throw new NotImplementedException();
}