상세 컨텐츠

본문 제목

[c# 키워드] yield

C#

by 메타샤워 2023. 7. 18. 18:32

본문

C#의  yield 키워드는 호출자  (Caller)에게 데이타를 하나씩 리턴할때 사용한다.

 
흔히 반복자 Iterrator 라고 불리우는 이러한 기능은 집합적인 데이타섹으로부터 하나씩 데이타를 호출자에게 보내주는 역할을 한다.
 
yield는 yield return  또는  yield break의 2가지 방식으로 사용되는데, yield return은 데이터를 하나씩 리턴하는데 사용되고,
 
yield break는 리턴을 중지하고 Iteration 루트를 빠져 나올 때 사용된다.
 
아래의 예제는 GetEnumerator() 로부터 IEnumerable 인터페이스를 얻어 MoveNext() 메서드와 Current 속성을 사용하여
 
개발자가 루프를 만들수도 있지만, 보톤 foreach문을 사용하여 C#에서 자동으로 이러한 루프를 처리를 하게 한다.
 
public class MyLinkedList<T>   
{  
    private Node<T> head;  
  
    public IEnumerator<T> GetEnumerator()  
    {  
        Node<T> t = head;  
        while (t != null)  
        {  
            yield return t.Data;  
            t = t.Next;  
        }  
    }  
  
    //...  
}  
  
// 호출자  
foreach (var item in list)  
{  
    Console.WriteLine(item);  
}

'C#' 카테고리의 다른 글

[C#] Interface로 구현한 폼 간 값전달  (0) 2023.07.18
[c# 키워드] Lambda Expression =>  (0) 2023.07.18
[c# 키워드] delegate  (0) 2023.07.18
[C#] 마우스 후킹하기  (0) 2023.07.18
[C#] 키보드 후킹하기  (0) 2023.07.18

관련글 더보기