什么是产量以及在asp .NET中使用yield的好处是什么?

时间:2010-07-07 13:35:23

标签: c# asp.net yield

您能否帮我理解yield中的asp .NET(C#)关键字。

5 个答案:

答案 0 :(得分:15)

收益率返回会自动为您创建一个枚举器。

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语句的重要部分是,在将集合返回给调用方法之前,不必加载集合中的所有项。它允许lazy loading集合,因此您不会一次性支付访问权限。

何时使用Yield Return

答案 1 :(得分:5)

产量远远超过语法糖或创建IEnumerables的简单方法。

有关更多信息,请查看Justin Etheridge的博客has a great article explaining more advanced usages of yield

答案 2 :(得分:1)

yield用作语法糖从方法返回IEnumerable<T>IEnumerator<T>对象,而不必实现自己的实现这些接口的类。

答案 3 :(得分:1)

我写了一个简单的示例,展示了如何在集合的访问周期中调用yield块。请查看here

答案 4 :(得分:0)

yield允许你发出一个IEnumerable,你通常会返回一个更具体的类型(比如IList)。

This is a pretty good example of how it can simplify your code and clarify your intent。至于你在哪里使用它,你需要在一个集合上迭代你的页面上的任何地方,你可能会使用一个返回IEnumerable的方法来代替List / Dictionary /等。