What is yield and what is the benefit to use yield in asp .NET?

我的未来我决定 提交于 2019-12-04 15:53:39

问题


Can you help me in understanding of yield keyword in asp .NET(C#).


回答1:


Yield return automatically creates an enumerator for you.

http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx

So you can do something like

//pseudo code:

while(get_next_record_from_database)
{
  yield return your_next_record;
}

It allows you to quickly create an object collection (an Enumerator) that you can loop through and retrieve records. The yield return statement handles all the of the code needed to create an enumerator for you.

The big part of the yield return statement is that you don't have to load all the of the items in a collection before returning the collection to the calling method. It allows lazy loading of the collection, so you don't pay the access penalty all at once.

When to use Yield Return.




回答2:


Yield is much more than syntatic sugar or easy ways to create IEnumerables.

For more information I'd check out Justin Etherage's blog which has a great article explaining more advanced usages of yield.




回答3:


yield is used as syntactic sugar to return an IEnumerable<T> or IEnumerator<T> object from a method without having to implement your own class implementing these interfaces.




回答4:


I wrote a simple sample showing how the yield block is invoked during a visiting cycle of the collection. Check it out here.




回答5:


yield allows you to emit an IEnumerable where you'd normally return a more concrete type (like an IList).

This is a pretty good example of how it can simplify your code and clarify your intent. As for where you'd use it, anywhere on your pages that you need to iterate over a collection you could potentially use a method that returns an IEnumerable in place of a List/Dictionary/etc.



来源:https://stackoverflow.com/questions/3195196/what-is-yield-and-what-is-the-benefit-to-use-yield-in-asp-net

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!