╭⌒半夏微凉ˊ

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2013年4月22日

摘要: 在定义API的时候,对于一些返回集合对象的方法,很多人喜欢将返回类型定义成IEnumerable<T>,这本没有什么问题。这里 要说的是另一个问题:对于返回类型为IEnumerable<T>的方法来说,我们可以使用yield return的方式来输出返回集合的元素。但是如果我们不了解yield 关键字背后的实现机制,很有可能造成很大的问题。这是一个 WCF相关的问题,我想99%的人都有可能会犯这样的错误——即使你对yield了解得非常透彻。闲话少说,我们通过一个简单的实例来说明这个问题。我们 定义了如下一个IDemoService接口作为服务契约,唯一的方法GetIte 阅读全文
posted @ 2013-04-22 15:28 ╭⌒半夏微凉ˊ 阅读(148) 评论(0) 推荐(0)

摘要: 昨天写了《yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]》,引起了一些讨论。关于yield关键字这个语法糖背后的原理(C#编译器将它翻译成什么)其实挺简单,虽然有时候因为误用它会导致一些问题,但是它本无过错。接下来,我们通过这篇短文简单地谈谈我所理解的yield。目录 一、先看一个简单的例子 二、了解本质,只需要看看yield最终编译成什么 三、回到WCF的例子 一、先看一个简单的例子我们现在看一个简单的例子。我们在一个Console应用中编写了如下一段简单的程序:返回类型为IEnumerable<string>的方法GetItems以yie... 阅读全文
posted @ 2013-04-22 15:27 ╭⌒半夏微凉ˊ 阅读(177) 评论(0) 推荐(0)