【发布时间】:2011-04-09 09:33:42
【问题描述】:
我知道Eric Lippert's blog post about situation 但我认为这是一种不同的情况,因为该领域会改变自身而不是其领域。如果 Enumerator 是只读的并且输出始终为 0,您如何解释调用 MoveNext()?
class SomeClass
{
private List<int> list;
private [readonly] List<int>.Enumerator enumerator;
public SomeClass()
{
list = new List<int>() { 1, 2, 3 };
enumerator = list.GetEnumerator();
}
public int ReadValue()
{
if (enumerator.MoveNext())
return enumerator.Current;
return -1;
}
}
static void Main()
{
SomeClass c = new SomeClass();
int value;
while ((value = c.ReadValue()) > -1)
MessageBox.Show(value.ToString());
}
【问题讨论】: