**yield**
키워드는 메서드를 일시 중단하고, 호출자(caller)에게 컬렉션 데이터를 하나씩 리턴 할 때 사용한다.
- Enumerator 라고 불리는 이러한 기능은 집합적인(Enum) 데이터셋으로 부터 데이터를 하나씩 호출자에게 보내주는 역할을 한다.
- 이를 통해 메모리를 효율적으로 사용하면서 큰 데이터 집합을 다룰 수 있다.
yield
키워드를 사용하는 메서드는 반드시 반환 형식이 **IEnumerble<T>**
또는 IEnumerble
이어야 한다.
- 매서드 내에서
yield return
을 사용하여 값을 생성하고 호출자에게 반환한다.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
foreach (var number in GenerateNumbers())
{
Console.WriteLine(number);
}
}
static IEnumerable<int> GenerateNumbers()
{
for (int i = 0; i < 10; i++)
{
yield return i;
}
}
}