【发布时间】:2017-07-04 17:36:28
【问题描述】:
我们使用的是 NDepend 5,我确实对我们的平均循环复杂度有些怀疑。
当检查这个查询是如何产生的时,我发现它包括我们的属性的 getters 和 setters。它似乎还包括自动属性方法。这些方法通常相当于 CC 为 1。我不喜欢这样,因为它会降低我们的平均 CC,并且不会向我们展示我们编写的方法的真正平均值。
有没有办法从这个计算中删除属性?
【问题讨论】:
标签: ndepend
我们使用的是 NDepend 5,我确实对我们的平均循环复杂度有些怀疑。
当检查这个查询是如何产生的时,我发现它包括我们的属性的 getters 和 setters。它似乎还包括自动属性方法。这些方法通常相当于 CC 为 1。我不喜欢这样,因为它会降低我们的平均 CC,并且不会向我们展示我们编写的方法的真正平均值。
有没有办法从这个计算中删除属性?
【问题讨论】:
标签: ndepend
您可以使用 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 }
下面的截图比较了得到的值。
【讨论】: