我必须重构一个大型的c#应用程序,我发现了许多从未使用过的函数。我如何检查未使用的代码,所以我可以删除所有未使用的函数?
当前回答
ReSharper在寻找未使用的代码方面做得很好。
在VS IDE中,你可以右键单击定义并选择“查找全部” 引用,尽管这只适用于解决方案级别。
其他回答
我还要提一下,使用IOC也就是Unity可能会让这些评估产生误导。我可能有错误,但几个非常重要的类,通过Unity实例化似乎没有实例化,就ReSharper可以告诉。如果我按照ReSharper的建议去做,我就会被洗掉!
ReSharper在寻找未使用的代码方面做得很好。
在VS IDE中,你可以右键单击定义并选择“查找全部” 引用,尽管这只适用于解决方案级别。
事实上,这个工具永远不能给你一个100%确定的答案,但是覆盖率工具可以让你的钱花得很值。
如果您使用全面的单元测试套件,那么您可以使用测试覆盖工具来查看在测试运行期间哪些代码行没有执行。您仍然需要手动分析代码:要么消除您认为的死代码,要么编写测试以提高测试覆盖率。
其中一个这样的工具是NCover,它在Sourceforge上有开源前驱。另一种选择是PartCover。
在stackoverflow上看看这个答案。
FXCop是一个代码分析器…它的功能远不止查找未使用的代码。我用了FXCop一段时间,对它的建议太着迷了,所以我把它卸载了。
我觉得NDepend看起来更有可能。
Resharper是好的,就像其他人所说的。但是要注意,这些工具不会找到反射使用的代码,例如不能知道某些代码没有被反射使用。
推荐文章
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 在Linq中转换int到字符串到实体的问题
- 是否可以动态编译和执行c#代码片段?
- 创建自定义MSBuild任务时,如何从c#代码获取当前项目目录?
- MSBuild路径
- c#和Java的主要区别是什么?
- 在c#中创建一个特定时区的DateTime
- .NET中的属性是什么?
- csproj文件中的“Service Include”是干什么用的?
- 如何使用try catch进行异常处理是最佳实践
- 替换字符串中第一次出现的模式
- .NET中字节的字面后缀?
- 如何处理AccessViolationException