簡體   English   中英

什么是 C# 迭代器和生成器,我該如何利用它們

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM