编辑说明:这是一个基于对yield return
工作原理误解的错误问题。简短回答:如果你不想yield return
任何东西,那就不要yield return
。
使用yield return
可以返回集合中的下一个元素,而使用yield break
可以结束迭代。是否有类似的yield continue
语句,可以告诉循环控制器跳到下一个元素?
我想实现以下代码,但显然无法构建:
static IEnumerable<int> YieldTest()
{
yield return 1;
yield return 2;
yield continue;
yield return 4;
}
yield continue
后你期望会发生什么?调用者会收到什么?为什么不直接在2
后使用yield return 4;
? - BartoszKPyield return 1
,yield return 2
,yield return 4
。客户端将收到三个整数,即1、2、4。你希望在2和4之间的客户端端发生什么? - BartoszKPcontinue
只能在循环中使用。 - Ondrej Tucnyforeach (int i in YieldTest()) Print(i)
打印出1 2 4
吗?但只需省略第三行就行了。_太困惑了_。 - Wolfzoon