파파비의 블로그

C#) yield return 본문

개발/c#

C#) yield return

N. Dave 2020. 4. 2. 17:13
반응형

c#에는 특이한 기능이 있는데,

바로 yield + return을 함께 쓰는 것이다.

 

IEnumerable<T> Func()

{

   yield return T1;

   yield return T2;

   yield return T3;

   yield return T4;

}

 

이런 함수가 있다고 해보자. 이럴 경우 Func를 호출하면 맨 처음에는 T1이 return된다.

그 다음에 호출하면 T2가 호출 되며,

그 다음 호출하면 T3가 호출된다.

 

Func를 맨 처음 호출하면 yield return까지 실행된다.

그 후 또 호출하면 그 다음 yield return까지 실행된다.

 

그렇기에 위와 같은 결과가 나온다.

<T>는 안에 다양한 타입을 넣을 수 있다는 것이며, return의 type을 말하는 것이다.

유니티에서는 이 것을 활용해서 코루틴이라는 함수를 만들어서 제공하기도 한다.

 

이런 것들은 어디에 쓰일까?

 

대용량의 데이터를 움직일 때 쓰인다고 한다.

예를 들어 구글의 검색엔진의 경우 사람들이 보통 1,2페이지까지만 보니까

처음에는 1,2 페이지만 호출하고, 다음페이지를 누를 경우 다시 호출해서 더 많은 양의 정보를 가져온다고 한다.

 

yield만 독단적으로 쓰이는 경우가 있는지,

yield + return 말고 다른 조합은 없지는 추후에 더 공부를 한 후에 업데이트 할 것이다.

 

참고 동영상

https://www.youtube.com/watch?v=VXaEluyEUhI&feature=youtu.be

 

 

 

반응형
Comments