C\#의 yield 키워드 사용 방법 소개

1798 단어 yield키워드
yield 는 try-catch 블록 에 따로 넣 을 수 없습니다.try 에 yield 가 있다 면 이 try 블록 뒤에 finally 블록 을 따라 가지 마 십시오.익명 의 방법 에 도 나타 나 지 않 기 때문에 yield 는 자주 사용 되 지 않 는 것 처럼 보이 지만 사용 하지 않 는 것 도 아니다.제 앞 에 교체 기 에 관 한 예 가 있 습 니 다.그 예 를 참고 할 수 있 지만 여기 서 더 말 해 야 할 것 은 제 가 나중에 본 것 입 니 다.yield 는 return 과 함께 사용 하 는 것 입 니 다.형식 은 yield return xxx 입 니 다.일반적으로 단독 return 은 모든 방법 에서 하나만 존재 할 수 있 습 니 다.한편,yield 는 다 르 게 연속 여러 개가 나 올 수 있다.교체 기 는 연속 적 인 집합 으로 여러 개의 yield return 이 나타 나 는 것 은 이 여러 개의 yield return 요 소 를 나타 나 는 순서에 따라 교체 기의 집합 에 저장 하 는 것 일 뿐이다.형 태 는 다음 과 같다.

 public class CityCollection : IEnumerable<string>
  {
      string[] _Items = new string[] { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " };
      IEnumerator<string> IEnumerable<string>.GetEnumerator()
      {
          for (int i = 0; i < _Items.Length; i++)
          {
              yield return _Items[i];
              yield return string.Format("Index:{0}", i);
         }
     }
     IEnumerator IEnumerable.GetEnumerator()
     {
         for (int i = 0; i < _Items.Length; i++)
         {
             yield return _Items[i];
         }
     }
 }
되 돌아 오 는 교체 결 과 는 바로 이렇다.

 
  Index:0
 
  Index:1
 
  Index:2
 
  Index:3
 
 Index:4
 
 Index:5
 
 Index:6
 
 Index:7
 
 Index:8
 
 Index:9
 
 Index:10
 
 Index:11
 
 Index:12
 
 Index:13
모든 yield return 은 교체 기의 한 요소 이다.

좋은 웹페이지 즐겨찾기