yield 關鍵字
將 yield
關鍵字放在返回型別為 IEnumerable
,IEnumerable<T>
,IEnumerator
或 IEnumerator<T>
的方法中,告訴編譯器生成返回型別(IEnumerable
或 IEnumerator
)的實現,當迴圈時,將方法執行到每個 yield
“得到每個結果。
當你想要返回理論上無限的序列的下一個元素時,yield
關鍵字很有用,因此預先計算整個序列是不可能的,或者在返回之前計算完整的值序列會導致使用者不希望的暫停。
yield break
也可以用於隨時終止序列。
由於 yield
關鍵字需要迭代器介面型別作為返回型別,例如 IEnumerable<T>
,因此不能在非同步方法中使用它,因為這將返回 Task<IEnumerable<T>>
物件。