将部分类合并为一个类的工具?

6
有没有一种工具可以将部分类合并为一个非部分类?
我不能使用Reflector,因为我需要变量名称等匹配。
编辑:我有数百个要合并的部分类,所以剪切粘贴不现实。

1
你的意思是将文件合并为每个类一个文件吗? - C.Evenhuis
1
编写你自己的工具。这并不应该很困难。 - BlackBear
编写你自己的工具吧,这并不难,然后与我们分享吧 :) - nawfal
3
对于那些认为这不需要其他人帮忙完成的人来说:这个任务包含了很多步骤,比如合并和清理命名空间,对它们进行排序,处理类属性以及对类中所有成员进行排序。你不希望看到属性先排列,然后是方法,接着又是更多的属性等等。因此,这不是一项简单的任务。 - user694833
1
对于那些说复制和粘贴就能解决所有重构问题的人来说,如果这是真的,你就不需要ReSharper这个工具了。手动将某些内容提取到变量中很简单,但使用CTRL+R+V(或者其他重构工具的快捷键)会更加简单、高效,并且错误率更低。我认为这种回答太懒惰和傲慢了。如果有这样的工具就好了(如果没有,显然你可以自己编写一个...我也不理解为什么不这样做)。 - jamiebarrow
合并的一个可能原因是脚手架。在一个部分中有脚手架内容,在另一个部分中有自定义内容。先搭建好所有脚手架,再添加自定义内容,完成后再次搭建脚手架。当你确定已经完成时,可以将它们合并成一个类,然后提交到源代码控制中心 [我认为Spring Roo或Play框架,或一些Java工具有类似的功能]。 - jamiebarrow
4个回答

4

我知道有人提到使用ReSharper,我正在使用ReSharper 6.1,如果我在一个局部类文件中点击partial关键字,然后按ALT+ENTER,它会给出一个选项“合并局部声明”。

我认为如果这是一个相当复杂的类,它就很难做到。但是我在一个更简单的版本上进行了测试,其中有两个不同的文件和一个在两个文件中定义的局部类具有不同的属性,并且它成功地将它们合并。

编辑: 我不确定是否有一个自定义工具可以实现这一点。如果您不能使用Reflector,那么我想ReSharper也不行。


4

0
Edit -> Copy -> Paste. 

我不知道还有什么更简单的工具可以做到这一点。


@HenkHolterman:我再重复一遍,“我不知道还有什么更简单的工具可以做到这一点”。 - Tigran
@Tigran - 主要是因为大多数人甚至不会考虑这样做,所以.NET添加了部分类,它们并不总是存在的原因。 - Security Hound

0

只需将代码从一个文件复制到另一个文件,然后从另一个文件中删除第一个文件和关键字“partial”。

如果你有数百个部分类,那么很容易制作一个机器人来执行这个操作,只需要重复x100次即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接