What is yield and what is the benefit to use yield in asp .NET?
你能帮我理解
yield return自动为您创建枚举器。
http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx
所以你可以做一些像
1 2 3 4 5 6 | //pseudo code: while(get_next_record_from_database) { yield return your_next_record; } |
它允许您快速创建一个对象集合(枚举器),您可以循环并检索记录。yield return语句处理为您创建枚举器所需的所有代码。
yield-return语句的主要部分是,在将集合返回到调用方法之前,不必加载集合中的所有项。它允许延迟加载集合,因此您不会一次性支付访问惩罚。
何时使用收益率返回。
产量远不止是合成糖或简单的创建IEnumerable的方法。
更多信息,我会查看JustinEtherage的博客,其中有一篇很好的文章解释了收益率的更高级用法。
我编写了一个简单的示例,演示如何在收集的访问周期中调用yield块。在这里看看。
这是一个很好的例子,说明了它如何简化代码并阐明您的意图。至于在哪里使用它,在页面上需要迭代集合的任何地方,都可以潜在地使用返回IEnumerable而不是List/Dictionary/etc的方法。