Sobes.tech
Back to questions
Junior — Middle
64

Объясните принцип работы оператора yield в программировании.

Answer from AI

sobes.tech AI

Оператор yield в C# используется для создания итераторов, позволяя методам возвращать элементы по одному без необходимости создавать и возвращать всю коллекцию сразу.

Когда метод с yield return вызывается, он возвращает элемент и приостанавливает своё выполнение, сохраняя текущее состояние. При следующем запросе элемента выполнение продолжается с того места, где было остановлено.

Это удобно для экономии памяти и реализации ленивых вычислений.

Пример:

IEnumerable<int> GetNumbers()
{
    yield return 1;
    yield return 2;
    yield return 3;
}

foreach(var num in GetNumbers())
{
    Console.WriteLine(num);
}

В этом примере числа 1, 2 и 3 возвращаются по одному при каждой итерации цикла.