【发布时间】:2011-05-19 21:52:37
【问题描述】:
如何检测我的 C# 应用程序中的死代码?
【问题讨论】:
-
你使用 Resharper 吗? )
-
跟随气味。
-
@The_Smallest:我不会使用 Resharper
-
到处都是异味……
如何检测我的 C# 应用程序中的死代码?
【问题讨论】:
编译您的代码并检查错误列表中的警告。以下代码:
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 是一种商业工具。
【讨论】:
请注意,这些工具不会检测 cmets 中的死代码。 例如:
// var a = 123;
// DoSomething(a);
不会被检测为死代码。
截至 2020 年 7 月,我找不到任何可以检测 cmets 中死代码的代码检查工具。因此,我自己开发了一个(基于 Roslyn)并在 MIT 许可下发布: https://github.com/mristin/dead-csharp.
【讨论】: