我必须重构一个大型的c#应用程序,我发现了许多从未使用过的函数。我如何检查未使用的代码,所以我可以删除所有未使用的函数?
当前回答
Resharper是好的,就像其他人所说的。但是要注意,这些工具不会找到反射使用的代码,例如不能知道某些代码没有被反射使用。
其他回答
FXCop是一个代码分析器…它的功能远不止查找未使用的代码。我用了FXCop一段时间,对它的建议太着迷了,所以我把它卸载了。
我觉得NDepend看起来更有可能。
Resharper是好的,就像其他人所说的。但是要注意,这些工具不会找到反射使用的代码,例如不能知道某些代码没有被反射使用。
这是一个很好的问题,但请注意,你正在踏入危险的水域。当你删除代码时,你必须确保你经常编译和测试。
我想到了一个很棒的工具:
NDepend - this tool is just amazing. It takes a little while to grok, and after the first 10 minutes I think most developers just say "Screw it!" and delete the app. Once you get a good feel for NDepend, it gives you amazing insight to how your apps are coupled. Check it out: http://www.ndepend.com/. Most importantly, this tool will allow you to view methods which do not have any direct callers. It will also show you the inverse, a complete call tree for any method in the assembly (or even between assemblies).
无论你选择什么工具,都不能掉以轻心。特别是当你在处理库类型程序集上的公共方法时,因为你可能永远不知道应用程序什么时候引用了它们。
ReSharper在寻找未使用的代码方面做得很好。
在VS IDE中,你可以右键单击定义并选择“查找全部” 引用,尽管这只适用于解决方案级别。
是的,ReSharper会这样做。右键单击您的解决方案并选择“查找代码问题”。其中一个结果就是“未使用的符号”。这将显示未使用的类、方法等。
推荐文章
- .Net HttpWebRequest.GetResponse()在返回http状态码400(坏请求)时引发异常
- 在using块的中间返回
- 找到未使用的代码
- 是什么让Visual Studio调试器停止评估ToString重写?
- ContentControl和ContentPresenter有什么区别?
- 一个字符串的字符串列表
- 无法确定条件表达式的类型,因为'int'和<null>之间没有隐式转换
- 从实体框架中删除单个记录?
- 创建一个完成的任务
- 字典的字面符号在c# ?
- 随机字符串生成器返回相同的字符串
- 为什么Func<T,bool>而不是Predicate<T>?
- .NET中的Map和Reduce
- 我如何能使一个组合框不可编辑的。net ?
- .NET反射的成本有多高?