具有许多条件返回语句的重构方法

MC.*_*MC. 3 .net refactoring code-analysis fxcop

我有一个验证方法,有许多条件语句.基本上就是这样

If Check1 = false 
  return false
If Check2 = false
  return false
etc
Run Code Online (Sandbox Code Playgroud)

FxCop抱怨说圈复杂度太高了.我知道在函数中间使用return语句不是最佳实践,但与此同时,我看到的唯一替代方法是一个丑陋的If-else语句列表.解决这个问题的最佳方法是什么?

提前致谢.

Jon*_*eet 11

我不同意你的说法,即在方法中间使用return语句不是最佳做法.有些人为了获得单一的return语句而去的长度是疯狂的 - 与任何产生最可读代码的东西一起去.有时这将是一个单一的返回点,但我经常发现它有一个"早期出现" - 并且最好有这个回报,而不是为代码引入更多的嵌套if用于替代路径.我喜欢不会缩小太多的方法,根据经验:)

说了这么多,是真正的方法没什么,但检查?检查是独立的吗?他们需要什么变量?您可以将它们分组为代表您正在执行的支票的"区域"的较小方法吗?