yield(C# 参考)
转自 http://msdn.microsoft.com/zh-cn/library/9k7k7cf0.aspx
yield 语句的两种形式。
yield return <expression>; yield break;
备注 :
yield return 语句返回每个元素一个节点。
当下次调用迭代器函数时执行从该位置重新启动。
yield break 语句结束迭代。
有关迭代器的更多信息,请参见迭代器(C# 和 Visual Basic)。
迭代器方法和 get 访问器
迭代器的声明必须满足以下要求:
-
返回类型必须是 IEnumerable、IEnumerable<T>、IEnumerator或 IEnumerator<T>。
-
该声明不能有任何 ref 或 http://msdn.microsoft.com/zh-cn/library/t3c3bfhx.aspx 参数。
yield return 语句的提供给迭代器的返回类型。
yield break 语句:
-
有关更多信息,请参见匿名方法(C# 编程指南)。
-
有关更多信息,请参见unsafe(C# 参考)。
异常处理
yield return 语句可以位于在尝试 try-finally 块语句。
yield break 语句可以位于 try 块或 catch finally 块,而不是块。
finally 在迭代器方法执行块。