[c#] C# yield 키워드

C#에서 yield 키워드는 반복자(iterator)를 생성하는데 사용됩니다. 이를 통해 메서드가 호출자에게 하나씩 값을 반환하면서 각 반환값에 대해 일시 중지하고 재개할 수 있는 기능을 제공합니다.

yield return 문

yield return 문은 현재 메서드 호출에 대한 일시 중지 지점을 나타내며, 호출자에게 값을 반환합니다. 메서드가 나중에 재개되면, 이전에 중지된 지점에서 실행을 계속합니다.

아래는 yield return을 사용하여 짝수 값을 반환하는 간단한 예제코드입니다.

public IEnumerable<int> GetEvenNumbers(int n)
{
    for (int i = 0; i <= n; i++)
    {
        if (i % 2 == 0)
        {
            yield return i;
        }
    }
}

yield break 문

yield break 문은 반복을 중지하고 호출자에게 현재 메서드를 종료할 것을 나타냅니다.

public IEnumerable<int> GetNumbers(int n)
{
    for (int i = 0; i <= n; i++)
    {
        if (i == 5)
        {
            yield break;
        }
        yield return i;
    }
}

이 예제를 통해 반복문이 5일때 yield break로 반복이 중단되고 메서드가 종료된다는 것을 알 수 있습니다.

yield 키워드를 사용하여 메모리 사용을 최적화하고 코드를 더 간결하게 작성할 수 있습니다.

참고 자료: Microsoft Docs - yield (C# Reference)