'yield'关键字是句法糖吗?它的实现是什么



可能重复:
收益率报表实现

我看过msdn文档,上面写着:

yield关键字向编译器发出信号,表示它出现的方法是迭代器块。编译器生成一个类来实现迭代器块中表达的行为。在迭代器块中,yield关键字与return关键字一起使用,为枚举器对象提供值。

因此,这意味着yield关键字是一个语法糖,编译器需要完成生成迭代器的繁重工作。(我说得对吗?(

那么,为这个语法糖生成的实现代码是什么呢。

生成的代码取决于原始代码,但一般来说,会生成一个跟踪集合当前状态的状态机。

请参阅收益声明的实现,这是Eric Lippert的回答,也是Jon Skeet的博客文章。

相关内容

  • 没有找到相关文章

最新更新