我偶然发现了这段代码:
public IEnumerable Process() { foreach (var item in items) { if (item.Created < DateTime.Now) { yield return item; continue; } } }
有人可以帮助我理解为什么continue在这种情况下不是不必要的(VS不标记continue为冗余控制流跳转语句)?
continue
yield return将返回一个项目作为枚举器的一部分.一旦调用方法请求下一个项目,代码将在该行之后重新启动yield return.
yield return
在这种特殊情况下,这continue是多余的,因为无论如何,循环在该点之后将不再进行任何工作.但作为一般应用,它有很多用途.