[Win Store App] yield的使用

參考微軟官方的說明

基本上這是用於回傳列舉型別的方法。比方說是回傳IEnumerable的方法。以此作法回傳的物件代表了列舉中的值(value)。

有兩種形式:

yield return <expression>;

這種是將回傳,並且隱性轉型為列舉內的物件型別。

另一種是

yield break;

代表結束。

當iterator方法內運行到return yield陳述句時,就會回傳expression,然後保存code內目前的位置,下次iterator方法被呼叫時,會從該位置重新開始執行。你可以使用yield break去終止遞迴。

注意:

  1. 匿名方法內無法使用yield
  2. 包含不安全blocks的方法無法使用yield
  3. 在try-catch內使用yield的話會丟出例外。

留言