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

可能重复:
yield语句实现

我见过msdn文档,它说:

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

所以它意味着yield关键字是一个语法糖,并且编译器执行繁重的Iterator生成工作。 (我对么 ?)

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


生成的代码依赖于原始代码,但通常情况下会生成一个状态机,用于跟踪集合的当前状态。

查看yield statement的实现,Eric Lippert和Jon Skeet撰写的这篇博客文章的答案。

链接地址: http://www.djcxy.com/p/53773.html

上一篇: Is 'yield' keyword a syntactic sugar ? What is its Implementation

下一篇: Why yield returns an iterator?