[英]What are C# Iterators and Generators, and how could I utilize them
我是 VB.Net 開發人員,是 C# 的新手,在查看 C# 文檔時,我是通過迭代器和生成器來的,無法完全理解使用,我有任何人可以解釋(在 vb 中,如果可能的話)
迭代器是一種生成項目序列的簡單方法,無需自己實現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);
}
注意yield return
語句:這些語句實際上並不從方法中返回,它們只是將下一個元素“推送”給正在閱讀實現的人。
當編譯器遇到迭代器塊時,它實際上將它重寫為實現IEnumerable<T>
和IEnumerator<T>
的類中的狀態機。 迭代器中的每個yield return
語句對應於該狀態機中的一個狀態。
有關迭代器的更多詳細信息,請參閱 Jon Skeet 的這篇文章。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.