Raj*_*eev 14 .net c# iterator generator enumerators
我是一名VB.Net开发人员,在C#中有点新手,在查看C#文档时,我通过迭代器和生成器来了,无法完全理解使用,我有任何人可以解释(在vb中有洞察力;如果可能的话)
Tho*_*que 22
迭代器是生成一系列项目的简单方法,无需实现IEnumerable<T>/您IEnumerator<T>自己.迭代器是一种返回IEnumerable<T>可以在foreach循环中枚举的方法.
这是一个简单的例子:
public IEnumerable<string> GetNames()
{
yield return "Joe";
yield return "Jack";
yield return "Jane";
}
foreach(string name in GetNames())
{
Console.WriteLine(name);
}
Run Code Online (Sandbox Code Playgroud)
请注意这些yield return语句:这些语句实际上并不从方法返回,它们只是将下一个元素"推送"给正在阅读实现的人.
当编译器遇到迭代器块时,它实际上将它重写为实现IEnumerable<T>和的类中的状态机IEnumerator<T>.yield return迭代器中的每个语句都对应于该状态机中的状态.
有关迭代器的更多详细信息,请参阅Jon Skeet 撰写的这篇文章.