有没有一种工具可以通过一组库代码(.net C#)来查找冗余?

有没有一种工具可以通过一组库代码(.net C#)来查找冗余?,c#,.net,duplication,C#,.net,Duplication,有没有一种工具可以通过一组库代码(.net C#)来查找冗余 问题是我有很多.NET库,但它们往往有很多类似/重复的“helper”或“utility”函数。有些时候,代码可能并不完全实用,但遵循类似的模式,命名略有不同 是否有某种工具可以发现这些相似之处并在一批C#库中报告它们?Visual Studio 11(目前仅为开发人员预览版)具有此功能。您可以免费下载开发者预览来查看它 这称为代码克隆分析,它通过代码搜索相似性,并生成从精确匹配到可能匹配的报告 您可以找到一个小示例。现在内置了一个重

有没有一种工具可以通过一组库代码(.net C#)来查找冗余

问题是我有很多.NET库,但它们往往有很多类似/重复的“helper”或“utility”函数。有些时候,代码可能并不完全实用,但遵循类似的模式,命名略有不同

是否有某种工具可以发现这些相似之处并在一批C#库中报告它们?

Visual Studio 11(目前仅为开发人员预览版)具有此功能。您可以免费下载开发者预览来查看它

这称为代码克隆分析,它通过代码搜索相似性,并生成从精确匹配到可能匹配的报告

您可以找到一个小示例。

现在内置了一个重复的代码查找器。我不知道你对这种工具的预算是多少,但我发现CodeRush/重构的好处!以抵消许可证的成本。

请参阅我们的工具,以便在大量源代码中查找准确的、几乎没有遗漏的重复代码块

CloneDR的工作原理是使用编译器质量前端解析源文本,构建表示代码的编译器数据结构(“AST”,并匹配树。这意味着无论布局、换行符或注释如何,它都可以找到重复项。匹配过程可以找到在可参数化的意义上相似的代码块;它很容易找到具有重命名变量的类似块,或者具有已替换的语句或代码块的类似块

有多种语言的版本,包括C#。可在网站上找到C#克隆检测报告样本


CloneDR不是“开发预览”。我在1998年写了一篇关于如何做好这项工作的原始论文,从那以后我一直在开发CloneDR;看见(Microsoft Clone detector进行基于令牌的克隆检测,而不是基于树的克隆检测,而且生成的结果也不太好;事实上,这种令牌式检测器正是我撰写本文的原因)。

CloneDR不是一个免费工具,对吗?我也不认为这个工具有试用期,对吗?CloneDR是一个商业工具。从该站点可以轻松获得评估下载。(MS Studio有几种风格,其中一些也不是免费的;我不知道哪个版本将包含MS克隆检测工具)