yield是.NET2.0时代的语法糖,它是返回一个实现了IEnumerable接口的对象,在早期的.NET版本中,如果想返回IEnumerable对象,必须自己创建实现了IEnumerable和IEnumerator接口的对象,yield正是充当了这个角色。
public IEnumerableSayHappyNewYear(){
yield return "恭"; // yield在这里充当隐式的IEnumerator接口
yield return "喜";
yield return "发";
yield return "财";
yield break; // 向迭代器发出结束迭代的信号
}
static void Main(string[] args){
foreach (String item in (new Program()).SayHappyNewYear())
{
Console.Write(item);
}
Console.ReadKey(true);
}