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

She*_*Pro 6 c# language-implementation yield-keyword

可能重复:
yield语句实现

我见过msdn docs,它说:

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

所以它意味着yield关键字是一个语法糖,编译器完成了生成迭代器的繁重工作.(我对么 ?)

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

Ode*_*ded 5

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

请参阅yield 语句实现、Eric Lippert 的这个答案和Jon Skeet 的这篇博文