參考微軟官方的說明。
基本上這是用於回傳列舉型別的方法。比方說是回傳IEnumerable的方法。以此作法回傳的物件代表了列舉中的值(value)。
有兩種形式:
yield return <expression>;
這種是將
另一種是
yield break;
代表結束。
當iterator方法內運行到return yield陳述句時,就會回傳expression,然後保存code內目前的位置,下次iterator方法被呼叫時,會從該位置重新開始執行。你可以使用yield break去終止遞迴。
注意:
- 匿名方法內無法使用yield
- 包含不安全blocks的方法無法使用yield
- 在try-catch內使用yield的話會丟出例外。
留言
張貼留言