如何使用 NDepend 计算方法的度量响应

How to compute the metric Response for a Method with NDepend

是否有任何方法可以获取调用嵌套函数可能产生的“源代码行”数?

这个问题我举个例子:

函数选择

Function name Lines of Code (LOC) [function body]
Function1 10
Function2 20
Function3 20

示例 1
函数 1
...|-> 调用 Function2
......|-> 调用 Function3
LOC总和= 50

示例 2
函数 1
...|-> 调用 Function3
......|-> 调用 Function2
LOC总和= 50

示例 3
函数 1
..|-> 调用 Function2
..|-> 调用 Function3
..|-> 调用 Function2
LOC总和= 70

这是一个代码查询,它为代码库的每个方法计算响应

from m  in Application.Methods

let methodsCalledMetric =
   m.MethodsCalled.FillIterative(
       methods => methods.SelectMany(mm => mm.MethodsCalled))

let methodsCalled = methodsCalledMetric.DefinitionDomain

let responseLoc = methodsCalled.Sum(mm => mm.NbLinesOfCode)

select new { m, methodsCalled, responseLoc } 

结果如下:

可以列出任何方法调用的方法集(例如,通过单击 136 方法 单元格)或导出到依赖关系图以更清晰地可视化它: