我在Visual Studio 2005中得到了一個C#應用程序。 代碼有300多KLOC,這已經被濫用了3年。清理不需要的代碼C#
當我通過代碼發現了很多未使用的函數/方法/屬性。它不可能手動清理代碼(需要檢查每個成員,如果發現沒有引用刪除它)
我期待通過VS宏自動執行此過程,它將遍歷代碼中的每個成員,如果它沒有任何引用它應該刪除它,如果找到任何引用,檢查它的調用成員的引用,如果調用成員,沒有任何引用,它應該刪除這兩個等等。
我相信有人會提前破解它。
我在Visual Studio 2005中得到了一個C#應用程序。 代碼有300多KLOC,這已經被濫用了3年。清理不需要的代碼C#
當我通過代碼發現了很多未使用的函數/方法/屬性。它不可能手動清理代碼(需要檢查每個成員,如果發現沒有引用刪除它)
我期待通過VS宏自動執行此過程,它將遍歷代碼中的每個成員,如果它沒有任何引用它應該刪除它,如果找到任何引用,檢查它的調用成員的引用,如果調用成員,沒有任何引用,它應該刪除這兩個等等。
我相信有人會提前破解它。
Resharper有一個乾淨的代碼功能,並提供了很好的指示哪些方法/類沒有被使用。
我不確定它是否是自動的,但Resharper指出一個方法是否有任何引用。 – 2009-03-05 09:42:49
第一次使用重新銳利,如其他建議。
Resharper假定公共方法被某個外部程序集使用,即使它們不是,所以搜索並用「private」替換「public」並重新編譯。
小心通過反射調用的代碼。許多重構工具會將這些代碼標記爲實際上未被訪問。
最安全的是在重構之前和之後運行你的單元測試(你確實有這些東西?),以確保一切仍然有效。
我已使用Gendarme(如FxCop)來確定哪些代碼未被調用。 AFAIK它不能自動化,但至少你不需要一條線。
希望應用程序不使用反射來調用方法。 – kenny 2009-06-01 18:00:20