为什么continue放在yieldreturn之后?
Why is continue placed after yield return?
我无意中发现了这段代码:
public IEnumerable<object> Process()
{
foreach (var item in items)
{
if (item.Created < DateTime.Now)
{
yield return item;
continue;
}
}
}
谁能帮我理解为什么 continue
在这种情况下不是不必要的(VS 没有将 continue
标记为冗余控制流跳转语句)?
yield return
将 return 一个项目作为枚举器的一部分。一旦调用方法请求下一个项目,代码将在 yield return
.
之后的行上重新启动
在这种特殊情况下,continue
是多余的,因为在该点之后循环将不再做任何进一步的工作。但作为一个通用的应用程序,它有很多用途。
我无意中发现了这段代码:
public IEnumerable<object> Process()
{
foreach (var item in items)
{
if (item.Created < DateTime.Now)
{
yield return item;
continue;
}
}
}
谁能帮我理解为什么 continue
在这种情况下不是不必要的(VS 没有将 continue
标记为冗余控制流跳转语句)?
yield return
将 return 一个项目作为枚举器的一部分。一旦调用方法请求下一个项目,代码将在 yield return
.
在这种特殊情况下,continue
是多余的,因为在该点之后循环将不再做任何进一步的工作。但作为一个通用的应用程序,它有很多用途。