NDepend: получить среднее значение LOC для каждого метода

Допустим, у меня есть определенный метод, установленный в моем решении. Как я могу получить среднее количество строк кода на метод в наборе методов?

Эти цифры обычно отображаются в разделе статистики каждого отчета NDepend (например, Sum, Average, Minimumи т. д.) но я хочу иметь возможность писать запросы для таких номеров отдельно.

1 ответ

Решение

Запрос CQLinq может выглядеть следующим образом:

let totalLinesSum = JustMyCode.Methods.Where(t => t.IsPublic).Sum(t => t.NbLinesOfCode)
let methodsCount = JustMyCode.Methods.Where(t => t.IsPublic).Count()

let result = (double)totalLinesSum / methodsCount 

select (double?)result

... или чуть более уточненный, этот запрос может быть реорганизован следующим образом:

// Let define your methods set the way you need
// It is worth removing abstract method that have no LoC
let methodsSet = JustMyCode.Methods.Where(m => m.IsPublic && !m.IsAbstract)

let totalLoc = methodsSet.Sum(t => t.NbLinesOfCode)
let methodsCount = methodsSet.Count()
let avgLoc = (double)totalLoc / methodsCount 

select (double?)avgLoc
Другие вопросы по тегам