함수가 끝나거나 함수를 끝내는 것과 다른 어떤 것도 수행합니까? 참고 VB.NET에는 수확 틈이 없지만이 함수는 반복자 키워드로 표시되어야합니다.yield break in C#
답변
약 C#
에 대해 말하기, 소스가 null이거나 비어있는 경우 아무 것도 반환하지 않는 반복기를 작성하려는 경우.
public IEnumerable<T> EnumerateThroughNull<T>(IEnumerable<T> source)
{
if (source == null)
yield break;
foreach (T item in source)
yield return item;
}
그것은 yield break
없이 반복자 내부에 빈 집합을 반환하는 것은 불가능하게된다 예를 들면 다음과 같습니다. 또한 iterator가 끝났음을 지정합니다. 값을 반환하지 않는 return 문으로 yield break
을 생각할 수 있습니다.
int i = 0;
while (true)
{
if (i < 5)
yield return i;
else
yield break; // note that i++ will not be executed after this statement
i++;
}
yield break는 그 시점에서 열거를 끝냅니다. 복잡한 내부 상태를 갖는보다 복잡한 열거 형은 매우 유용 할 수 있습니다. 그러나이 대답이 암시 하듯이이 사용 사례는 필요하지 않습니다. 간단한 if (source! = null) {foreach .....}는 yield break없이 null에서 빈 열거 형을 반환합니다. – SAJ14SAJ
첫 번째 의견을 쓰는 동안 답변이 수정되었습니다. 첫 번째 사례에 대한 의견이 적용됩니다. 두 번째는 yield break가 가독성을 높이는보다 복잡한 상태의 예입니다. 그러나 다시 말하면, 그것 없이는 불가능하지 않습니다. 두 번째 예제의 else 문에서 yield break를 간단한 break로 변경하고, 루프를 벗어나 함수의 자연적인 끝으로 이동하면 열거도 종료됩니다. – SAJ14SAJ
나는 답이 그것이 필요하지 않다라고 생각한다. 함수가 자연스럽게 완료되도록하는 것은 또한 괜찮습니다. yield break와 동일합니다. – bradgonesurfing
- 1. C# yield 문을 구현하는 알고리즘
- 2. break 프로그램을 종료합니다 - C++
- 3. IEnumerable 및 yield yield
- 4. yield to yield
- 5. C# switch/break
- 6. "for ... in ... break"루프를 "while"루프로 변환
- 7. 중첩 된 메서드에서 C# yield
- 8. NUnit, ExpectedException 및 yield yield 이상한 동작
- 9. C# - 프로그램 실행 흐름 yield/pause/resume
- 10. C#에서 "yield"키워드를 사용하는 것은 무엇입니까?
- 11. word-break : break-all; - 대체 할게 뭐야?
- 12. 이메일 파서 in C++
- 13. break 문
- 14. ruby break double statement
- 15. C#에서 "yield"와 "yield returns"의 차이점은 무엇입니까? 나는 전통적으로 복귀하지 않고 C#에서 수율을 사용했습니다
- 16. 신뢰성있는 프로토콜에서 BREAK 인식
- 17. "yield yield"가 "블록이 true로 평가되면 yield"와 같습니까? 이 코드에 아래의 테스트를 실행하면
- 18. substr in C++ 문제
- 19. sqrt in C in Ubuntu
- 20. -NaN print in C in
- 21. "in"연산자 in linq C#?
- 22. Ruby yield newbie issue
- 23. 'yield self'는 instance_eval과 동일합니까?
- 24. Parallel.Foreach + yield returns?
- 25. picturebox image in c sharp
- 26. python에서 재귀 함수를 사용하여 yield
- 27. Search in ListView C#
- 28. 정규식 Validate() yield NullReference (ASP.NET)
- 29. 사파리의 Page-break-before와 page-break-after는 공백 페이지를 인쇄합니다.
- 30. MVC3 ValidationAttribute break
도 볼 http://stackoverflow.com/questions/231893/what-does-yield-break-do-in-c –
아니 그 예를하지만이 경우 설명하지 않습니다 무엇 수율 휴식 말 함수가 자연스럽게 종료되도록하는 단순한 반환과의 차이입니다. – bradgonesurfing