C #에서는 리턴 유형을 IEnumerable<T>사용 하여 메소드를 구성 하고 플로우를 사용 yield return하고 yield break제어 할 수 있습니다. 다음은 두 컨트롤을 모두 사용하는 간단한 예입니다.
public IEnumerable<int> GetEvens(int start, int end) {
if(end < start)
yield break;
if(start & 2 != 0)
start++;
for(int i = start; i <= end; i+=2) {
yield return i;
}
}
제 질문은 왜 원래 두 개의 키워드를 사용 yield하고 단일 yield"반환 값을 산출하는" 키워드로 다음과 같이 사용하지 않도록 설계된 것입니다 .
public IEnumerable<int> GetEvens(int start, int end) {
if(end < start)
return; // stop completely and return nothing
if(start & 2 != 0)
start++;
for(int i = start; i <= end; i+=2) {
yield i; // yield the current value.
}
}
나에게 이것은 읽고 이해하는 것이 더 간단합니다.
yield x;당시 구문 오류가 아니 었 습니까?