什么是为C#Express用户识别可能重复的代码的好工具?

另请参阅“ 检查重复的VB.NET代码的任何工具?”

我的一个朋友只能访问Visual Studio的Express版本,我正在尝试帮助他重构以消除大量重复。

你可以看看Simian或DuplicateFinder 。 虽然您可以很容易地 集成 Simian,但它们都没有依赖IDE。

Clone Detective看起来好像可能对你有用。 我之前没有使用过它,但本周我在codeplex上偶然发现了它。

你的朋友应该看看Gendarme ,这是微软FxCop / Code Analysis的FOSS和跨平台替代品,它是Mono项目的一部分。 它包括检查重复代码的规则 。

试试Atomiq :

Atomiq Code Similarity Finder是开发人员查找和消除重复代码的工具。 它专为.NET开发人员设计,但同样适用于其他语言的开发人员甚至Web设计人员! Atomiq使用各种源代码:

我们目前支持C#,VB.Net,ASPX,Ruby,Python,Java,C,C ++,ActionScript和XAML,并且很快就会有更多扩展。 它是不经常更新代码并且不可能记住其中的所有内容的人或者是由2个或更多开发人员组成的团队的完美伴侣工具,他们在同一个项目中不知道其中的所有内容,因为他们没有写一切都是。

消除类似的代码

(并将你的头撞在它附带的墙上)Atomiq不只是找到完全匹配,它找到类似的代码。 它忽略了像空格,字符串内容,花括号,注释和using / import语句的“绒毛”,因此您可以找到导致问题的重复代码。 在VB.NET中,它还将忽略仅包含“Next”,“End While”,“End Try”,“End If”,“End Property”,“End Get”和“End Set”的行。

更像是fyi,因为你提到了’express edition’,你可能需要找一些能在VS之外工作的东西,因为我不相信快递版本支持插件

查看我们的CloneDR ,它可以运行许多语言,包括C#。

编辑2010年10月:VB6,VBScript和VB.net添加为CloneDR支持的语言。 没有对MS IDE的特定支持,但它在简单的源文件列表上运行,并生成一个很好的HTML报告,因此不需要太多的集成。 请参阅链接中的示例报告。