如果没有从任何地方调用foo(),我想删除foo().
Gendarme将检测没有上游呼叫者的私有方法.它是跨平台的,最新版本处理" AvoidUncalledPrivateCodeRule ".
FxCop将检测没有上游调用者的公共/受保护方法.但是,如果没有上游调用者,FxCop不会检测所有方法,因为它是为了检查您的代码是否是库的一部分,因此公共成员被排除在外.您可以使用NDepend搜索没有上游调用者的公共成员,我在此处详细介绍了其他StackOverflow答案.
(编辑:添加有关Gendarme的信息,实际上提出了提问者的要求)
NDepend还将报告可能未使用的代码.
请记住,如果标记方法,Resharper(以及可能还有其他类似工具)将不会突出显示未使用的方法public
.静态代码分析工具无法检查解决方案之外的其他程序集是否使用了程序集的方法.因此,清除未使用的方法的第一步是降低其对private
或的可见性internal
.