C \ # 키워드 의 yield


yield 하면 교체 기 를 먼저 말 해 야 합 니 다.교체 기 는 C \ # 2.0 의 새로운 기능 입 니 다. 그것 이 있 으 면 우 리 는 자신의 클래스 나 구조 에서 foreach 교 체 를 지원 할 수 있 습 니 다. 전체 IEnumerable 인 터 페 이 스 를 실현 하지 않 아 도 됩 니 다. 우 리 는 하나의 교체 기 를 제공 하면 클래스 의 데이터 구 조 를 옮 겨 다 닐 수 있 습 니 다.컴 파일 러 가 교체 기 를 감지 하면 IEnumerable 인터페이스의 Current, MoveNext, Dispose 방법 을 자동 으로 생 성 합 니 다.교체 기 코드 는 yield return 문 구 를 사용 하여 모든 요 소 를 순서대로 되 돌려 줍 니 다.yield break 는 교 체 를 중단 합 니 다.yield return 구문 에 도착 하면 현재 교체 되 는 위 치 를 저장 하고 다음 에 교체 기 를 호출 할 때 이 위치 에서 실 행 됩 니 다.
다음 예제 에서 교체 블록 (여 기 는 방법 Power(int number, int power) 에서 yield 문 구 를 사 용 했 습 니 다.Power 방법 을 호출 할 때, 그것 은 숫자 멱 을 포함 하 는 매 거 진 대상 을 되 돌려 줍 니 다.Power 방법의 반환 유형 은 IEnumerable (교체 기 인터페이스 형식) 입 니 다.
  • // yield-example.cs

  • using System;
  • using System.Collections;

  • public class List
  • {

  •     public static IEnumerable Power(int number, int exponent)
  •     {

  •         int counter = 0;
  •         int result = 1;

  •         while (counter++ < exponent)
  •         {

  •             result = result * number;
  •             yield return result;

  •         }
  •     }

  •     static void Main()

  •     {
  •         // Display powers of 2 up to the exponent 8:

  •         foreach (int i in Power(2, 8))
  •         {

  •             Console.Write("{0} ", i);
  •         }

  •     }
  • }
  • 좋은 웹페이지 즐겨찾기