Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从.net(C#)项目中标记和删除不需要的代码(方法、属性)_C#_Refactoring - Fatal编程技术网

如何从.net(C#)项目中标记和删除不需要的代码(方法、属性)

如何从.net(C#)项目中标记和删除不需要的代码(方法、属性),c#,refactoring,C#,Refactoring,我收到了一个遗留的.NETC#解决方案,其中有许多类库项目需要审查、重新考虑和重用。此解决方案不适用于任何地方,也不存在于代码垃圾场中。不过,解决方案是正确编译 主类库中需要4个主要方法。我只想保留解决方案中所有其他项目中这4个方法使用的所有后续类、方法和属性,并去掉对我来说是垃圾的所有其他代码。目前,我正在VisualStudio2010的“调用层次结构”功能中手动跟踪这4个主要方法 是否有一个自动化的过程来快速识别与我的主要方法相关的代码,并将其提取到全新的闪亮解决方案(有望成功构建)中,以

我收到了一个遗留的.NETC#解决方案,其中有许多类库项目需要审查、重新考虑和重用。此解决方案不适用于任何地方,也不存在于代码垃圾场中。不过,解决方案是正确编译

主类库中需要4个主要方法。我只想保留解决方案中所有其他项目中这4个方法使用的所有后续类、方法和属性,并去掉对我来说是垃圾的所有其他代码。目前,我正在VisualStudio2010的“调用层次结构”功能中手动跟踪这4个主要方法

是否有一个自动化的过程来快速识别与我的主要方法相关的代码,并将其提取到全新的闪亮解决方案(有望成功构建)中,以便我只需查看相关代码,而不需要我的四个主要方法所需的其他代码


谢谢。

我发现ReSharper对于检测无法访问或未使用的代码非常有用,所以我一定会尝试一下。您可以从下载演示版本

它可能不会为您做所有事情,跨多个类查找未使用的代码(换句话说,不调用的公共方法)也不是那么容易,但这是一个好的开始


与此相关,我还建议您在进行任何重构之前准备好一组好的单元测试,这样您就可以很容易地发现是否/何时破坏了功能。

静态工具很有用--尝试一下--但动态调用意味着这些方法可以访问代码库的任何部分。试着运行一个代码覆盖工具,比如一套广泛的单元测试,或者手动测试,然后分析工具的输出。

目前没有一个代码是无法访问或未使用的。正是因为如此,我希望提取与上述四种主要方法相关的所有代码。您将其描述为“垃圾”,对误解表示歉意。当您删除代码时,您会发现其他代码可能无法访问,也可能被删除。不管谁投了反对票,谢谢你。这是一个非常合理的答案,所以我不明白为什么我得了a-1。我从标题中删除了垃圾。根据你的理解,你的回答是令人满意的。我不会因此而贬低你的回答。