NDpend变量计算

时间:2016-12-01 15:44:25

标签: ndepend

尝试使用自定义NDepend变量代替常量,并且无法解决围绕let关键字的NDepend语法的一些复杂问题。

其中一个内置查询是:

warnif count > 0 from m in JustMyCode.Methods where 
  m.CyclomaticComplexity > 30 ||
  m.ILCyclomaticComplexity > 60 ||
  m.ILNestingDepth > 6
  orderby m.CyclomaticComplexity descending,
          m.ILCyclomaticComplexity descending,
          m.ILNestingDepth descending
select new { m, m.CyclomaticComplexity, 
                m.ILCyclomaticComplexity,
                m.ILNestingDepth  }

而我真正想做的不是使用0常量值而是将其基于代码库。有点像:

let tenPercent = (JustMyCode.Methods.Count() / 100 * 10)
warnif count > tenPercent from m in JustMyCode.Methods where 
  m.CyclomaticComplexity > 30 ||
...

这甚至可能吗?

1 个答案:

答案 0 :(得分:0)

你可以写这样的东西......

warnif percentage > 10 
from m in Application.Methods where 
m.CyclomaticComplexity > 2
select new { m, m.CyclomaticComplexity }

...但此功能有点隐藏(percentage关键字未出现在intellisense中),因为它尚未完善。百分比基数是方法的总数(包括抽象方法,第三方方法,生成的方法......),这个基数实际上是不可配置的。此外,常量值(此处为10)不能是表达式。

enter image description here