我有一个 ForEach 循环来处理相当大的联系人列表。我没有在这个主循环中做一堆处理,而是调用一个方法,该方法又调用一个方法等。方法调用其他类中的其他方法,可能是其他命名空间。
如果检测到条件并且我想继续进行下一个联系,我该如何中断当前方法?我在距主 ForEach 循环几个级别的方法中。
通常,您可以在 ForEach 中使用 continue
关键字跳到集合中的下一个元素。 continue
在这种情况下不是一个选项。当我键入 continue
时,它会带有红色下划线和“ Unresolved 消息”注释。
那么,我该怎么办?
最佳答案
你走错了路;退后一步,重新考虑您的设计。
一般来说,拥有试图影响调用者控制流的方法是一个非常糟糕的主意。方法是调用者的仆人,而不是主人。该方法不决定调用者下一步做什么;那不是它的事。相反,一种方法:
- 执行计算并返回结果,或者
- 修改一些状态,然后
- 如果操作无法成功完成则抛出异常
有一些高级控制流样式,在这些样式中,被调用者与调用者一起确定“接下来会发生什么”——例如,继续传递样式。但你不应该去那里。他们很难理解。
关于c# - 如何从嵌套方法 'continue' ForEach 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5904095/