源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C# yield关键字详解

  • 时间:2021-01-25 10:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C# yield关键字详解
对于yield关键字我们首先看一下msdn的解释: 如果你在语句中使用 yield 关键字,则意味着它在其中出现的方法、运算符或 get 访问器是迭代器。 通过使用 yield 定义迭代器,可在实现自定义集合类型的 [url=https://msdn.microsoft.com/zh-cn/library/system.collections.ienumerable.aspx]IEnumerable [/url]和 [url=https://msdn.microsoft.com/zh-cn/library/system.collections.ienumerator.aspx]IEnumerator [/url]模式时无需其他显式类(保留枚举状态的类,有关示例,请参阅 [url=https://msdn.microsoft.com/zh-cn/library/78dfe2yb.aspx]IEnumerator<T>[/url])。 [b]yield是一个语法糖[/b] 看msdn 的解释总是让人感觉生硬难懂。其实yield关键字很好理解。首先我们对于性质有个了解。yield是一个语法糖。既然yield是在C#中的一个语法糖,那么就说明yield是对一种复杂行为的简化,就是将一段代码简化为一种简单的形式,方便我们程序员使用。 那么yield到底是对什么行为的简化。我们首先来看一下yield的使用场景。 还是来看msdn上的例子。
[url=http://www.1sucai.cn/article/63856.htm]具体的例子可以看Artech博主的文章[/url] 另外使用yield还有一些注意事项: 你不能在具有以下特点的方法中包含 yield return 或 yield break 语句: 匿名方法。 有关详细信息,请参阅匿名方法([url=https://msdn.microsoft.com/zh-cn/library/0yw3tz5k.aspx]C# 编程指南[/url])。 包含不安全的块的方法。 有关详细信息,请参阅unsafe([url=https://msdn.microsoft.com/zh-cn/library/chfa2zb8.aspx]C# 参考[/url])。 [b]异常处理[/b] 不能将 yield return 语句置于 try-catch 块中。 可将 yield return 语句置于 try-finally 语句的 try 块中。 yield break 语句可以位于 try 块或 catch 块,但不能位于 finally 块。 如果 foreach 主体(在迭代器方法之外)引发异常,则将执行迭代器方法中的 finally 块。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部