没有 get 和 set 的 NDepend 平均圈复杂度

NDepend Average Cyclomatic Complexity without get and set

我们正在使用 NDepend 5,我确实对我们的平均圈复杂度有些怀疑。

在检查这个查询是如何进行时,我发现它包括我们属性的 getterssetters。它似乎还包括自动属性方法。这些方法通常相当于 1 的 CC。我不喜欢这样,因为它降低了我们的平均 CC,并且向我们展示的不是我们编码的方法的真实平均值。

有没有办法从此计算中删除属性?

您可以使用 code query 定义自定义复杂度指标,如果需要可以将其转换为规则(使用前缀 warnif count > 0 和阈值条件):

from t in JustMyCode.Types
let complexity = t.Methods.Where(m => !(m.IsPropertyGetter || m.IsPropertySetter))
                 .Sum(m => m.CyclomaticComplexity)
orderby complexity descending
select new { t, complexity, t.CyclomaticComplexity }

下面的截图比较了得到的值。

顺便说一句,不再支持 NDepend v5,v6 and v2017 带来了很多新功能。