c# - 免费的 C# 指标计算库 (DLL)

标签 c# code-metrics

<分区>

我想问您是否知道一些计算 CK 指标(主要是圈复杂度)的免费 C# 库 (dll)。

我计划做的项目需要它。我知道已经有一些完成的解决方案可以计算 CK 指标并以各种形式显示给您,但我需要的是可以在我的应用程序中使用的解决方案。所以在开始自己写之前,我首先想问问你。

谢谢

最佳答案

DrivenMetrics 是一个开源的 C# 命令行工具。核心功能作为库与命令行控制台客户端隔离(核心项目可用 here )。

即使非常简单,它也可能满足您的需要:它是免费的,计算行数并计算方法的圈复杂度(潜在代码路径的数量)。

由于 Mono.Cecil,这是通过对 IL 的直接分析执行的(NDepend 依赖的同一个库)。这允许对用 C#、VB.Net 编写的代码构建的程序集执行分析,...

  • 项目已公布 here .
  • 代码源是 可用 github .
  • 打包版本也是 available .
  • 它适用于 Windows 和 Mono。

更新:

另一个选择是 amazing Gendarme,它是 Mono 项目的静态分析工具。

作为使用示例,下面的代码显示了程序集中每个方法的圈复杂度。

ModuleDefinition module = ModuleDefinition.ReadModule(fullPathToTheAssembly);

foreach (var type in module.Types)
{
    foreach (var me in type.Methods)
    {
        if (!me.HasBody || me.IsGeneratedCode() || me.IsCompilerControlled)
            continue;
        var r = AvoidComplexMethodsRule.GetCyclomaticComplexity(me);

        Console.WriteLine("{0}: {1}", me.ToString(), r);
    }
}
  • 项目描述here
  • 代码源可在 github 上找到
  • 打包版本也是 available
  • 它适用于 Windows 和 Mono

关于c# - 免费的 C# 指标计算库 (DLL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1052269/

相关文章:

c# - 有没有办法在不统一使用 Update() 函数的情况下从按钮单击启动方法

c# - 制作一组图片框,每个都有不同的图像

metrics - LOC 计数应该包括测试和评论吗?

c# - 使用 safari、chrome 创建 cookie 失败,即使用 FF

c# - AJAX调用的实时进度(asp.net)

java - JAVA代码量度分析

.net - 衡量面向对象的指标

code-metrics - HIS-公制 "calling"

c# - IList<T> 和 IReadOnlyList<T>

c++ - C++ 的代码指标和警告