Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 yield return의 용도는 무엇입니까?

<시간/>

Yield 키워드는 컬렉션에 대해 사용자 지정 상태 저장 반복을 수행하는 데 도움이 됩니다. yield 키워드를 사용하면 컨트롤이 호출자 함수에서 소스로 또는 그 반대로 이동한다는 의미입니다.

예시

using System;
using System.Collections.Generic;
namespace DemoApplication {
   class Program {
      static List<int> numbersList = new List<int> {
         1, 2, 3, 4, 5
      };
      public static void Main() {
         foreach(int i in RunningTotal()) {
            Console.WriteLine(i);
         }
         Console.ReadLine();
      }
      public static IEnumerable<int> RunningTotal() {
         int runningTotal = 0;
         foreach(int i in numbersList) {
            runningTotal += i;
            yield return (runningTotal);
         }
      }
   }
}

출력

위 프로그램의 출력은

1
3
6
10
15

위의 예에서 각각의 주요 메소드에서 우리는 누계의 숫자 목록을 반복하고 있습니다. 따라서 yield return이 호출될 때마다 컨트롤은 각 루프의 기본 메서드로 돌아가 값을 인쇄합니다. 값을 인쇄한 후 컨트롤은 각 누계에 대해 다시 이동합니다. 여기서 주의해야 할 점은 이전 값도 그대로 유지된다는 점입니다. 간단히 말해서 yield 키워드는 훨씬 더 효율적일 수 있는 컬렉션 항목에 대한 지연 열거를 효과적으로 생성합니다.