Skip to main content

Yield Return in C# Made easy

 Yield Return in C# Made easy

The CSharpNaija bring yet another important keyword in C# that is, yield return type. In the article below we will learn some programming techniques that revolve around C# yield return keywords.

What MSDN has about Yield

"The yield keyword signals to the compiler that the method in which it appears is an iterator block. The compiler generates a class to implement the behavior that is expressed in the iterator block. In the iterator block, the yield keyword is used together with the return keyword to provide a value to the enumerator object. This is the value that is returned, for example, in each loop of a foreach statement. The yield keyword is also used with break to signal the end of iteration."

Operation of yield

When combined with the return mechanism allowing creation, the function returns a value that handles certain information in the loop, and puts an end to certain conditions before it. This is contrary to the case of a normal return; that returns a value of the function and finish the function at that point. But here, the function is to call back in the loop containing the yield return function that just ended. From here we can imagine an action that is rather abstract, but can be useful in some cases, to help keep code concise and tight.

How to use yield return

i.                Do not put "yield" in an unsafe block.

 ii.              Do not use ref or out keywords with the parameters of the method, operator or accessor (getter / setter).

 iii.            "Yield return" can only be placed in the try block if it is followed by a finally block.

 iv.            "Yield break" can be put in the try block and catch, but not placed in the finally block.

 v.              Do not use "yield" of the anonymous method.

 Example of using yield return

 To use "yield return", you just need to create a method with a return type that is an IEnumerable (arrays and collections in .Net implements IEnumerable interface) with a loop and use "yield return" to return a value to set in the loop body.

 For example, a function with two arguments (int start, int number) to generate an even number starting from the starting number.

 The following is the code written in the usual way, that returns the result as an array and then use one array to receive the value returned:

Normal return type

We can instead,  use a yield return to make the code simpler, quick operation, reducing operating costs through other intermediaries, easy error checking code in the case of large volume.

Yield return

In the second code you can set a breakpoint at line 21 and line 13 and start a debug function continue (F5), you will see that the two breakpoints will be activated alternately. This demonstrates that the program can jump back and forth between the two modes without losing their current state.

 Conclusion

 One advantage of using "yield" is that you can see right in the first instance that the number of lines of code is reduced.

 Moreover, because two working modes rotate, you do not need to create or get a list of the elements to browse. This applies in cases such as searching and browsing a number of elements required that will be reduce the dependency on the location of the element to find.


Comments

Popular posts from this blog

Classes in C# Explained

C# Class Explained A class is nothing but an encapsulation of properties and methods that are used to represent a real-time entity, as explained by Guru99 . For instance, if you want to work with Guest’s data as in our previous DataDriven Web application . The properties of the Guest would be the Id, GuestName, Address, Phone number etc of the Guest. The methods would include the entry and modification of Guest data. All of these operations can be represented as a class in C# as shown below. using System; namespace CsharpnaijaClassTutorial {     public class Guest     {         public int Id { get ; set ; }         public string GuestName { get ; set ; }         public string Address { get ; set ; }         public string WhomToSee { get ; set ; }     ...

ASP.NET MVC Views

Views in ASP.NET MVC Application explained Find a related article By  Steve Smith  and  Luke Latham from Microsoft Corporation here In the Model-View-Controller (MVC) pattern, the  view  handles the application's data presentation and user interaction. A view is an HTML template with embedded  Razor markup . Razor markup is code that interacts with HTML markup to produce a webpage that's sent to the client. In ASP.NET MVC, views are  .cshtml  files that use the  C# programming language  in Razor markup. Usually, view files are grouped into folders named for each of the application's  controllers . The folders are stored in a  Views  folder at the root of the application as shown: The  Home  controller is represented by a  Home  folder inside the  Views  folder.  The  Home  folder contains the views for the  About ,  Contact , and  Index...

ASP.NET MVC Routing

ASP.NET MVC Routing ASP.NET MVC routing is a pattern matching system that is responsible for mapping incoming browser requests to specified MVC controller actions. When the ASP.NET MVC application launches then the application registers one or more patterns with the framework's route table to tell the routing engine what to do with any requests that matches those patterns. When the routing engine receives a request at runtime, it matches that request's URL against the URL patterns registered with it and gives the response according to a pattern match. Routing pattern is as follows A URL is requested from a browser, the URL is parsed (that is, break into controller and action), the parsed URL is compared to registered route pattern in the framework’s route table, if a route is found, its process and send response to the browser with the required response, otherwise, the HTTP 404 error is send to the browser. Route Properties ASP.NET MVC routes are res...