代码之家  ›  专栏  ›  技术社区  ›  Ivo

在.net项目中查找未使用的类

  •  13
  • Ivo  · 技术社区  · 16 年前

    我有一个VS.NET2008项目。是否可以检查项目中没有使用的类?通过FXcop,我可以找到未使用的变量和代码,但不能找到未使用的类。

    2 回复  |  直到 16 年前
        1
  •  10
  •   Patrick from NDepend team    9 年前

    工具 NDepend 可以帮助在.NET代码库中查找未使用的代码。 免责声明:我是这个工具的开发者之一。

    Code Rule over LINQ Query (CQLinq) . 周围 200 default code rules 其中3个专门用于 未使用/无效代码 侦查

    基本上,检测未使用方法的规则(例如)如下所示:

    // <Name>Dead Methods</Name>
    warnif count > 0 
    from m in Application.Methods where !m.MethodsCallingMe.Any()
    select m
    

    NDepend rule to find unused methods (dead methods)

    但是这个规则是幼稚的,会返回微不足道的误报。在很多情况下,一个方法从未被调用,但它还未被使用(入口点、类构造函数、终结器…),这就是为什么3个默认规则更为详细的原因:

    NDepend集成在visualstudio中,因此可以 checked/browsed/edited right inside the IDE . 该工具还可以集成到您的CI流程中,并且可以构建 reports 这将显示违反规则和罪魁祸首代码元素。

    如果单击这3个指向这些规则源代码的链接,您将看到有关类型和方法的链接有点复杂。这是因为它们不仅检测未使用的类型和方法,而且还检测所使用的类型和方法 只有 通过未使用的死类型和方法(递归)。

    静态分析 ,因此是前缀 可能 只有 通过反射,这些规则可能会认为它未被使用,而事实并非如此。

    除了使用这3条规则之外,我建议通过测试来衡量代码覆盖率,并努力实现完全覆盖。通常,您会看到测试无法覆盖的代码实际上是 可以安全丢弃的代码。这在复杂算法中尤其有用,因为在复杂算法中,不清楚代码的分支是否可到达。

        2
  •  4
  •   thecoop    16 年前