我用 Visual Studio 2005 获得了一个 C# 应用程序。代码有大约 300 KLOC,已被滥用超过 3 年。
当我浏览代码时,发现了很多未使用的函数/方法/属性。手动清理代码是不可能的(需要检查每个成员,如果发现没有引用将其删除。)
我希望通过 VS 宏自动化这个过程,它将遍历代码中的每个成员,如果它没有任何引用,它应该删除它,如果找到任何引用,检查它的调用成员的引用,如果调用成员没有任何引用都应该删除,依此类推。
我敢肯定有人会更早地破解它。
我用 Visual Studio 2005 获得了一个 C# 应用程序。代码有大约 300 KLOC,已被滥用超过 3 年。
当我浏览代码时,发现了很多未使用的函数/方法/属性。手动清理代码是不可能的(需要检查每个成员,如果发现没有引用将其删除。)
我希望通过 VS 宏自动化这个过程,它将遍历代码中的每个成员,如果它没有任何引用,它应该删除它,如果找到任何引用,检查它的调用成员的引用,如果调用成员没有任何引用都应该删除,依此类推。
我敢肯定有人会更早地破解它。
Resharper有一个 Clean Code 功能,可以很好地指示哪些方法/类没有被使用。
您可以使用NDepend使用 CQL查询您的代码库,以找出哪些方法和类没有被使用。
注意通过反射调用的代码。许多重构工具会将此代码标记为未被访问,而实际上它们是。
最安全的是在重构之前和之后运行你的单元测试(你已经做对了吗?),以确保一切仍然有效。
第一次使用 re-sharper 正如其他人建议的那样。
Resharper 假设外部程序集在某处使用公共方法,即使它们不是,所以搜索并用“私有”替换“公共”并重新编译。
我使用宪兵(如 FxCop)来确定哪些代码没有被调用。AFAIK 它不能自动化,但至少你不需要逐行进行。