什么是产量以及在asp .NET中使用yield的好处是什么?
你能帮我理解asp .NET(C#)
的yield
关键字吗?
Yield return会自动为您创建一个枚举器。
http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx
所以你可以做点什么
//pseudo code: while(get_next_record_from_database) { yield return your_next_record; }
它允许您快速创建可以循环并检索记录的对象集合(枚举器)。 yield return语句处理为您创建枚举器所需的所有代码。
yield return语句的重要部分是,在将集合返回给调用方法之前,不必加载集合中的所有项。 它允许延迟加载集合,因此您不会一次性支付访问权限。
何时使用Yield Return 。
产量远远超过合成糖或创建IEnumerables的简单方法。
有关更多信息,请查看Justin Etherage的博客,其中有一篇很棒的文章解释了更高级的收益率用法 。
yield
用作语法糖,从方法返回IEnumerable
或IEnumerator
对象,而不必实现自己的实现这些接口的类。
我写了一个简单的示例,展示了如何在集合的访问周期中调用yield块。 看看这里 。
yield
允许你发出一个IEnumerable,你通常会返回一个更具体的类型(比如IList)。
这是一个很好的例子,说明它如何简化代码并澄清你的意图 。 至于你在哪里使用它,你需要迭代一个集合的页面上的任何地方,你可能会使用一个返回IEnumerable的方法来代替List / Dictionary / etc.