它做什麼不同,只是從返回或讓函數完成到最後?注意VB.NET沒有良率中斷,但要求功能用迭代器關鍵字標記。屈服於c#
屈服於c#
回答
淺談C#
,如果你想編寫一個迭代器,如果源爲空或空的時候不返回任何東西。這裏有一個例子:
public IEnumerable<T> EnumerateThroughNull<T>(IEnumerable<T> source)
{
if (source == null)
yield break;
foreach (T item in source)
yield return item;
}
就不可能返回一個空集的迭代器內沒有yield break
。它還指定迭代器已結束。您可以將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 .....}將返回一個空的枚舉,而不會產生中斷。 – SAJ14SAJ
答案在編寫我的第一條評論時進行了編輯 - 該評論適用於第一個示例。第二個是更復雜狀態的例子,其中收益率突破有助於提高可讀性。但是,沒有它也是不可能的。例如,將第二個示例的else語句中的yield中斷更改爲簡單中斷,轉義循環以及到函數的自然結尾也會終止枚舉。 – SAJ14SAJ
好的我認爲答案是它不是必需的。讓一個函數自然地完成也是可以的,相當於yield break – bradgonesurfing
- 1. 不屈服於屈服可以永遠是空的嗎?
- 2. 是否有time.Sleep()屈服於其他goroutines?
- 3. c ==自我和屈服做什麼?
- 4. Scrapy屈服utf-8
- 5. 屈服子組合
- 6. 憋屈環路C++
- 7. 如何讓os.pullEvent不屈服?
- 8. 產量內容或屈服
- 9. 屈服於一個匿名塊兩個函數向上
- 10. 無法讓Ruby on Rails屈服於UI層工作
- 11. 助手方法如何屈服於軌道3中的塊?
- 12. Rails如何屈服於erb模板中的多個塊?
- 13. 我如何屈服於Excel VBA 2010中的消息泵?
- 14. scrapy如何屈服於現有物體mongodb
- 15. 子集迭代器在C#陣列/列表而不屈服
- 16. 迭代器模式(C#會使用屈服!)
- 17. 未定義的方法`屈服」 - Rails的
- 18. 不「屈服」 A作業發生功能
- 19. Rails 4 - 局部多個屈服塊
- 20. 如何使用屈服函數在Python
- 21. Python3龍捲風不能正確屈服?
- 22. 發電機屈服值差異
- 23. 左聯接屈服沒有結果
- 24. 在C#憋屈正則表達式
- 25. 憋屈fork()的
- 26. 憋屈CLLocation
- 27. 屈德寧數
- 28. 憋屈實施
- 29. 在軌道上的紅寶石屈服於新的紅寶石佈局
- 30. 如果我屈服於Promise,它是否等待承諾解決之前繼續
也看到http://stackoverflow.com/questions/231893/what-does-yield-break-do-in-c –
沒有那些例如說什麼破的產量也不過它並沒有,如果有解釋與簡單返回或讓函數自然退出有什麼不同。 – bradgonesurfing