Sobes.tech
Junior — Senior
160

Разбор поведения итератора с оператором yield в C#

任务条件

Определите, какой вывод получит программа при выполнении следующего кода.

var start = 0;
var iterator = GenerateSequence(start);

static IEnumerator<int> GenerateSequence(int start)
{
    if (start % 2 != 0)
    {
        yield break;
    }

    if (start < 3)
    {
        start++;
        yield return start;
    }
}

iterator.MoveNext();
iterator.MoveNext();
iterator.MoveNext();
Console.WriteLine(iterator.Current);