gpt4 book ai didi

c# - 什么是 C# 迭代器和生成器,我该如何使用它们

转载 作者:可可西里 更新时间:2023-11-01 07:54:14 26 4
gpt4 key购买 nike

我是一名 VB.Net 开发人员,有点像 C# 的新手,在查看 Iterators 和 Generators 的 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语句:这些语句实际上并不从方法返回,它们只是将下一个元素“推送”给正在阅读实现的任何人。

当编译器遇到迭代器 block 时,它实际上将其重写为实现了IEnumerable<T> 的类中的状态机。和 IEnumerator<T> .每个yield return迭代器中的语句对应于该状态机中的一个状态。

参见 this article由 Jon Skeet 撰写,了解有关迭代器的更多详细信息。

关于c# - 什么是 C# 迭代器和生成器,我该如何使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com