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

The String.Join Method in C# Explained

The String.Join Method in C#   The string.Join concatenates the elements of a specified array or the members of a collection, using the specified separator between each element or member. Overloads of string.Join Method Description Join(Char, Object[]) Concatenates the string representations of an array of objects, using the specified separator between each member. Join(Char, String[]) Concatenates an array of strings, using the specified separator between each member. Join(String, IEnumerable<String>) Concatenates the members of a constructed IEnumerable<T> collection of type String, using the specified separator between each member. Join(String, Object[]) Concatenates the elements of an object array, using the specified separator between each element. Join(String, String[]) Concatenates all the elements of a string array, usi...

Most Popular Programming Languages in 2020

Most Popular Programming Languages in 2020 In this blog post, you will learn about the most popular programming languages in 2020 for creating the best web applications. Check its pros and cons. Analyzed by technostacks Not very long ago, just a few people were considered to be computer programmers, and the general public viewed them with awe. In this digital age that we are now living in, however, a large number of IT jobs need a solid grasp of one or more programming languages. Whether one wants to develop a mobile app or get a certification for having programming knowledge, or even to learn new skills, one needs to opt for the right programming language. Below mentioned eight most popular programming languages which are in demand for software development and web applications. This is the most used programming languages in 2019 and will be in 2020. For each, there is little information about the language, benefits and its complexity, as well as about its usage. One must...

Creating Database with some tables in Sql Server step by step

SQL Database and Tables Creation step by step We have installed Sql Server in our previous post here , now we are going to see how to create database and its table in sql server. Steps below show how to create a database and its tables, but we need to install Sql Server Management Studio for Graphical User Interface program to create and maintain databases. Now download and install the Sql Server Management Studio here , after installing the software, we connect to the sql server using the Management Studio as shown below Click on the connect button as shown above after selecting the Server type, Server name and Authentication. Server Type: allows you to select the server type such as Database Engine, Reporting Services or Integration Services. But in post, we are living it with the default Server type that is, Database Engine. Server name : Let us select the server we are connecting to, we also allow the default since we have only one instance. Authent...