【问题标题】:Tool to merge partial classes into one class?将部分类合并为一个类的工具?
【发布时间】:2012-05-04 13:29:05
【问题描述】:

有没有一种工具可以将部分类合并为一个非部分类?

我不能使用 Reflector,因为我需要变量名等来匹配。

编辑:

我有数百个要合并的部分类,所以剪切粘贴是不现实的。

【问题讨论】:

  • 您的意思是将文件合并到每个类一个文件中?
  • 编写自己的工具。应该没那么难
  • 编写自己的工具。应该没那么难,和我们分享吧:)
  • 对于那些认为这并不难的人来说:这涉及到许多任务,例如合并和清理命名空间,对其进行排序,处理类属性,以及对内部的所有成员进行排序班级。您不想看到属性,然后是方法,然后是更多属性等。所以这不是一项简单的任务。
  • 对于那些说“复制和粘贴”的人,如果这是所有重构的答案,那么您就不会使用 ReSharper...手动将某些内容提取到变量中很简单,但是 CTRL+R+V (或任何您使用 ReSharper 或任何其他重构工具的快捷方式)更简单、更高效且不易出错。我发现这些答案既懒惰又傲慢。像这样的工具会很棒(如果它不存在,显然答案是自己写......我也不明白)。

标签: c# visual-studio visual-studio-2010 partial-classes


【解决方案1】:

Resharper 具有“复制类型”功能,允许将类型的所有部分复制到单个文件中: http://www.jetbrains.com/resharper/documentation/reviewers_guide.html#refactorings

但需要手动操作,因为您必须为每个文件打开至少一个文件并调用该功能。

【讨论】:

    【解决方案2】:

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

    我认为,如果这是一个相当复杂的课程,那么它很难做到这一点。但我在一个更简单的版本上对其进行了测试,其中包含两个不同的文件和一个在两者中定义的具有不同属性的部分类,并且它设法将它们很好地合并。

    编辑: 执行此操作的自定义工具,我不确定。抱歉,如果这不能回答您最初的问题(只注意到您现在不能使用 Reflector,所以我认为 ReSharper 也不可能)。

    【讨论】:

      【解决方案3】:
      Edit -> Copy -> Paste. 
      

      不知道任何其他更简单的工具。

      【讨论】:

      • @HenkHolterman:我重复一遍“不知道有任何其他更简单的工具”。
      • @Tigran - 主要是因为大多数人甚至不会考虑这样做,部分类被添加到 .NET 是有原因的,它们并不总是存在。
      【解决方案4】:

      只需将代码从一个文件复制到另一个文件,删除第一个文件和另一个文件的部分关键字。

      如果您有数百个部分类,那么让机器人做到这一点应该很容易,只需 x100 次。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-07
        • 2012-08-16
        • 2017-04-15
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多