Bevezetés a hozamkulcsszóba a C # -ben

A hozam egy kontextusbeli kulcsszó a C # -ben. A kontextusbeli kulcsszavak azok a C # kulcsszavak, amelyeket a teljes program számára nem fenntartanak. Inkább a program bizonyos részeire fenntartott kulcsszavak, ahol a kulcsszó releváns módon felhasználható. Ezeket a kulcsszavakat érvényes azonosítókként lehet felhasználni, ha azok relevanciája nem ad külön jelentést a fordítónak.

A hozam kulcsszó azt jelzi, hogy a kulcsszót tartalmazó módszer vagy a hozzáférõ iterátor módszer / hozzáférõ. Az iterator módszer / hozzáférés olyan, amely nem ad vissza egyetlen értéket. Inkább iterációkban hívják, és az egyes iterációkban különböző értékeket adnak vissza.

Szintaxis

A hozam kulcsszó szintaxisa elég egyszerű. Egyszerűen meg kell adnia a kulcsszót a módszer vagy a hozzáférés visszatérési nyilatkozata előtt.

yield return ;

VAGY

yield break;

Ez a kulcsszó két megvalósítása. Ha a visszatérési nyilatkozatot használja, a hozam kulcsszó a kifejezésből kiszámított következő értéket adja vissza, amíg a kifejezés kilépési feltétele teljesül. A break kulcsszóval együtt a hozam kulcsszó megszakítja az iterációt, és a program végrehajtása a metódusból / hozzáférőből származik.

Hogyan működik a Yield Kulcsszó a C # -ben?

  1. Szóval, hogyan működik a kulcsszó a C # -ben? Mi a kulcsszó belső megvalósítása a C # fordítóban? Megértjük. A hozam kulcsszót tartalmazó módszert iterator hurok, például foreach vagy LINQ lekérdezés felhasználhatja. A hurok minden iterációja hívja fel a módszert. A módszerben szereplő kód addig kerül végrehajtásra, amíg a hozam-visszatérítés vagy a hozamtörés-nyilatkozat meg nem történt.
  2. A végrehajtás jelenlegi helyét a metódusban megőrzik, és a következő iteráció folytatódik, ahonnan abbahagyta az előző iterációt.
  3. Ez egyszerű volt, nem? Menjünk be ugyanazon műszaki megvalósításába. A hozam kulcsszót tartalmazó módszernek mindig IEnumerable vagy IEnumerator értéket kell adnia. Amikor a fordító találkozik a hozam kulcsszóval, tudja, hogy a módszert iterátor használja. Amikor a metódust meghívják, a fordító nem hajtja végre a metódus törzsét, mint általában.
  4. Inkább végrehajtja a metódustestet, és egy összeállított IEnumerables halmazt ad vissza a fogyasztó iterator változóhoz. A módszer minden hívásakor a fordító keres egy hozamnyilatkozatot, és szünetelteti a végrehajtást ezen az utasításon. A hurok következő iterációja folytatja a végrehajtást az utolsó szüneteltetett helyről. Ez addig folytatódik, amíg a hurok kilépési feltétele vagy a hozamtörés nyilatkozat meg nem történik. Az állapotinformációk tárolására minden iteráció után a fordító létrehoz egy állapotgépet.

Példák a hozam kulcsszóra a C # -ben

Nézzük meg néhány példát:

1. példa - módszer

Az alábbi példa a hozam kulcsszóval generálja a Fibonacci sorozatot.

using System;
using System.Collections.Generic;
public class Program
(
public static void Main()
(
foreach (int ele in GetFibonacciSeries(10))
(
Console.Write(ele + "\t");
)
)
public static IEnumerable GetFibonacciSeries(int x)
(
for (int a = 0, b = 0, c = 1; a < x; a++)
(
yield return b;
int temp = b + c;
b = c;
c = temp;
)
)
)

2. példa - Hozzáférés

A következő példa a hozam kulcsszót használja egy get accessorral.

using System;
using System.Collections.Generic;
public class Program
(
public static void Main()
(
foreach (Day day in new Days().DaysOfWeek)
(
Console.WriteLine("Day (0) of the week is (1)", day.DayOfWeek, day.DayName);
)
)
public static IEnumerable Show(int x)
(
for (int a = 0, b = 0, c = 1; a < x; a++)
(
yield return b;
int temp = b + c;
b = c;
c = temp;
)
)
public class Days
(
public IEnumerable DaysOfWeek
(
get
(
yield return new Day(DayName = "Sunday", DayOfWeek = 1);
yield return new Day(DayName = "Monday", DayOfWeek = 2);
yield return new Day(DayName = "Tuesday", DayOfWeek = 3);
yield return new Day(DayName = "Wednesday", DayOfWeek = 4);
yield return new Day(DayName = "Thursday", DayOfWeek = 5);
yield return new Day(DayName = "Friday", DayOfWeek = 6);
yield return new Day(DayName = "Saturday", DayOfWeek = 7);
)
)
)
public class Day
(
public string DayName
( get; set; )
public int DayOfWeek
( get; set; )
)
)

3. példa - hozamszünet

A következő példa bemutatja a hozamszünet megállapítását. Az iteráció befejeződik, amint a sorozatban szereplő számot megtalálják, vagy eléri a maximális keresési korlátot.

using System;
using System.Collections.Generic;
public class Program
(
public static void Main()
(
int elementToFind = 21;
int maxElements = 100;
foreach (int ele in FindFibonacciNumber(elementToFind, maxElements))
(
Console.Write("Found the number " + elementToFind + " in Fibonacci series.");
)
)
public static IEnumerable FindFibonacciNumber(int n, int max)
(
for (int a = 0, b = 0, c = 1; true; a++)
(
if (a > max)
(
Console.Write("Searched first " + max + " Fibonacci numbers. Element " + n + " not found");
yield break;
)
if (b == n)
(
yield return b;
yield break;
)
int temp = b + c;
b = c;
c = temp;
)
)
)

Ha megváltoztatjuk az elementToFind 1234-et, akkor a kimenet lesz:

szabályok

1) Minden elemet egyenként kell visszaadni a hozam-visszatérítési nyilatkozat segítségével.
2) A visszatérés típusának IEnumerable vagy IEnumerator lehet.
3) Nem használhatja kulcsszavak hozammal, ref, illetve ki.
4) A hozam kulcsszó nem használható a Lambda kifejezésekkel vagy az anonim módszerekkel.
5) A hozam-visszatérítési nyilatkozat nem lehet a try-catch blokkban. Ez lehet egy próbálkozás végén.
6) A hozamtörési nyilatkozat nem lehet a "try-vég" blokkban. Ez lehet egy próbálkozás blokkban.

Előnyök

A hozam kulcsszó fenntartja az ideiglenes gyűjtemények létrehozásának szükségességét. Nem kell ideiglenes gyűjteményeket létrehoznia az adatok tárolásához, mielőtt azok visszatérnének a metódusból. Ezenkívül a módszer végrehajtási állapota megmarad, ezért nem kell kifejezetten tárolni a kódban.

Következtetés - Hozamkulcsszó a C # -ben

Ebből a cikkből megtudtuk, hogy a kulcsszó létrehozása nagyon hasznos kulcsszó a C # -ben. Segíti a komplex problémák kódolását a lehető legkevesebb sorral, és megkönnyíti a kód megértését. Ez egy magas szintű cikk volt a C # utazásról. Javasoljuk, hogy próbálja ki és használja a kulcsszót a kódjában, hogy gyakorlati tapasztalatokat szerezzen.

Ajánlott cikkek

Ez egy útmutató a hozamkulcsszóhoz a C # -ben. Itt tárgyaljuk, hogyan lehet a kulcsszót működni a C # példákkal, előnyökkel és szabályokkal. A következő cikkben további információkat is megnézhet -

  1. A C # felülbírálása
  2. Névterek a C # -ben
  3. Mutatók a C # -ben
  4. Romboló C # -ben
  5. PHP kulcsszavak
  6. Iterator Java-ban
  7. Munka és a 3 legfontosabb Enum módszer a C # -ben.
  8. Fibonacci sorozat JavaScript-ben példákkal
  9. Teljes útmutató a pusztítóhoz a PHP-ben

Kategória: