반응형
- foreach 문 사용할 수 있음
- IEnumerable<T>와 yield 키워드를 사용하면 foreach 문을 인스턴스.메서드로 호출
- IEnumerator<T>와 yield 키워드를 사용하면 foreach 문을 인스턴스로 호출
- 클래스에서 GetEnumerator 메서드로 구현해야함(메서드 이름 같아야함)
class yieldTest
{
public IEnumerable<int> Test01()
{
yield return 10;
yield return 20;
yield return 30;
}
public IEnumerator<int> GetEnumerator()
{
for (int i = 1; i <= 3; i++)
{
yield return i * 100;
}
}
}
static void Main(string[] args)
{
yieldTest test = new yieldTest();
foreach(var t in test.Test01())
{
Console.WriteLine($"{t}");
}
Console.WriteLine();
var tt = test.Test01().GetEnumerator();
while (tt.MoveNext())
{
Console.WriteLine(tt.Current);
}
Console.WriteLine();
foreach (var t in test)
{
Console.WriteLine($"{t}");
}
}
반응형
'C#' 카테고리의 다른 글
C# 스레드(Thread) (0) | 2022.01.10 |
---|---|
C# 제네릭 클래스 형식 매개변수 제약조건 (0) | 2022.01.10 |
C# 익명 형식(Anonymous type) 클래스를 선언하지 않은 인스턴스 (0) | 2022.01.06 |
C# Random 클래스 Next 메서드 (0) | 2022.01.06 |
C# 링크(LINQ) (0) | 2022.01.05 |