12

如何检测 C# 应用程序中的死代码?

4

4 回答 4

9

ReSharper可以处理这个问题。您还可以查看NDepend

如果您不想为其中任何一个付费,我相信您可以使用 FxCop 分析您的项目,它还会识别死代码。

于 2010-12-03T18:21:09.293 回答
8

编译代码并检查错误列表中的警告。以下代码:

    public ActionResult Index() {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";
        return View();
        return null;  // unreachable
    }

产生此警告:

Warning 11  Unreachable code detected   <fullpath>\HomeController.cs    13  13  <prjname>

JetBrains ReSharper (http://jetbrains.com/resharper)* 等工具也可以即时执行此分析并突出显示死代码。

* ReSharper 是一个商业工具。

于 2010-12-03T18:24:42.240 回答
2

Resharper识别死代码和未使用的参数/局部变量, FxCop也是如此。

于 2010-12-03T18:21:53.080 回答
0

请注意,这些工具不会检测到注释中的死代码。例如,以下内容:

// var a = 123;
// DoSomething(a);

不会被检测为死代码。

截至 2020 年 7 月,我在评论中找不到任何可以检测死代码的代码检查工具。因此,我自己开发了一个(基于 Roslyn)并在 MIT 许可下发布: https ://github.com/mristin/dead-csharp 。

于 2020-07-23T21:12:33.800 回答