我做了以下工作爲什麼我無法獲得當前值當我實現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 *枚舉器。 *多個*統計員可以同時使用。他們並不都是一個職位。 –