我做了以下工作为什么我无法获得当前值当我实现IEnumerable时?
class Program
{
class GenEnumerator<T> : IEnumerable
{
public T[] Values { get; set; }
public IEnumerator GetEnumerator()
{
for (int i = 0; i < Values.Length; i++)
yield return Values[i];
}
}
static void Main(string[] args)
{
GenEnumerator<string> g = new GenEnumerator<string>();
g.Values = new string[] { "a", "b", "c", "d", "e" };
g.GetEnumerator().MoveNext();
Console.WriteLine(g.GetEnumerator().Current);
Console.ReadKey();
}
}
g.GetEnumerator().Current
总是空。
但如果我这样做 - var a = g.GetEnumerator();
当前proeperty得到的值和正常工作
这是否意味着我必须从IEnumerator
明确的继承类,如果我想使用Current
没有实现它的方法和属性一个IEnumerator
类型变量?
感谢, 罗伊
'GetEnumerator()'总是返回一个* new *枚举器。 *多个*统计员可以同时使用。他们并不都是一个职位。 –