Вступ до ключового слова виходу в C #
Вихід - це контекстне ключове слово в C #. Контекстуальними ключовими словами є ті ключові слова в C #, які не зарезервовані для всієї програми. Скоріше вони є зарезервованими ключовими словами для певних частин програми, де ключове слово може бути відповідним чином використане для використання. Ці ключові слова можна використовувати як дійсні ідентифікатори, де б їх відповідність не надавала ніякого особливого значення компілятору.
Ключове слово урожайності вказує, що метод або аксесуар, що містить ключове слово, є методом ітератора / аксесуаром. Метод / ітератор ітератора - це той, який не повертає жодного значення. Вірніше, він викликається в ітераціях і повертає різні значення в кожній ітерації.
Синтаксис
Синтаксис ключового слова дохідності досить простий. Вам просто потрібно вказати ключове слово перед оператором повернення методу або аксесуара.
yield return ;
АБО
yield break;
Це дві реалізації ключового слова. Якщо використовується з оператором return, ключове слово віддачі повертає наступне значення, обчислене з виразу, доки не буде виконано умову виходу виразу. Якщо використовується з ключовим словом break, ключове слово прибутковість порушує ітерацію, а виконання програми виходить із методу / аксесуара.
Як працює ключове слово Yield у C #?
- Отже, як діє ключове слово у C #? Яка внутрішня реалізація ключового слова у компіляторі C #? Давайте розберемося. Метод, що містить ключове слово урожайності, може використовуватися циклом ітератора, таким як foreach або LINQ-запит. Кожна ітерація циклу робить виклик методу. Код у методі виконується, поки не зустрінеться заява про повернення або прибутковість.
- Поточне положення виконання у методі зберігається, і наступна ітерація продовжується з того місця, де воно припинилося в попередній ітерації.
- Це було просто, чи не так? Давайте вступимо в технічну реалізацію того ж. Метод, що містить ключове слово урожайності, завжди повинен повертати IEnumerable або IEnumerator. Кожного разу, коли компілятор стикається з ключовим словом дохідності, він знає, що метод використовує ітератор. Коли метод викликається, компілятор не виконує тіло методу, як зазвичай.
- Швидше він виконує тіло методу і повертає складений набір IEnumerables до споживчої змінної ітератора. Під час кожного виклику методу компілятор шукає заяву про вихід і призупиняє виконання цього оператора. Наступна ітерація циклу продовжує виконання з останнього призупиненого місця. Це триває до тих пір, поки не закінчиться умова виходу циклу або заява про перерву. Для зберігання інформації про стан після кожної ітерації компілятор створює стан машини.
Приклади ключового слова виходу в C #
Розглянемо кілька прикладів:
Приклад №1 - Метод
Наведений нижче приклад генерує ряд Фібоначчі, використовуючи ключове слово дохід.
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 - Аксесуар
У наступному прикладі використовується ключове слово урожайності з доступом get.
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 - перерва врожайності
Наступний приклад демонструє використання заяви про перерву врожайності. Ітерація припиняється, як тільки знайдено число в серії або досягається максимальна межа пошуку.
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;
)
)
)
Якщо ми змінимо elementToFind 1234, вихід буде -
Правила
1) Кожен елемент повинен бути повернутий один за одним, використовуючи заяву про повернення прибутковості.
2) Тип повернення повинен бути IEnumerable або IEnumerator.
3) Ви не можете використовувати його в ключових словах із дохідністю, уточненням чи вимкненням.
4) Ключове слово урожайності не можна використовувати з виразами Lambda або Anonymous.
5) Заява про повернення врожаю не може знаходитись у блоці спроб улов. Це може бути всередині блоку спробувати.
6) Заява про перерву врожайності не може знаходитись у блоці спроб нарешті. Це може бути всередині блоку спробу лову.
Переваги
Ключове слово прибутковість позбавляє від необхідності створювати тимчасові колекції. Вам не потрібно створювати тимчасові колекції для зберігання даних до їх повернення з методу. Також стан виконання методу зберігається, і тому його не потрібно явно зберігати в коді.
Висновок - ключове слово виходу в C #
З цієї статті ми дізналися, що як отримати ключове слово - це дуже корисне ключове слово в C #. Це допомагає кодувати складні проблеми з якомога менше рядків, а також робить код легким для розуміння. Це була стаття просунутого рівня про подорож на C #. Рекомендується спробувати використовувати ключове слово у своєму коді, щоб отримати практичну практику.
Рекомендовані статті
Це посібник з ключового слова врожайності в C #. Тут ми обговорюємо, як отримати ключове слово працює в C # з прикладами, перевагами та правилами. Ви також можете переглянути наступну статтю, щоб дізнатися більше -
- Переоцінка в C #
- Простори імен у C #
- Покажчики в C #
- Деструктор в C #
- PHP Ключові слова
- Ітератор на Java
- Робота та найкращі 3 методи Enum у C #
- Серія Фібоначчі в JavaScript з прикладами
- Повне керівництво Destructor в PHP