我试着在这个MSDN page上的例子。我试图改变GetEnumerator
方法。我知道这件事看起来不太合适,但它遵守,然后不运行。错误在于枚举器尚未启动,应该调用MoveNext
,但调用时它是!为什么以下不工作? (IEnumerable/IEnumerator)
class Program
{
static void Main(string[] args)
{
foreach (var day in new DaysOfTheWekk())
{
Console.WriteLine(day) ;
}
Console.ReadLine();
}
}
public class DaysOfTheWekk: IEnumerable
{
private string[] days = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
public IEnumerator GetEnumerator()
{
days.GetEnumerator().MoveNext();
yield return days.GetEnumerator().Current;
}
}