ReSharper Refactor>移动不起作用

时间:2014-07-01 12:50:50

标签: c# refactoring resharper

我有一个函数我想移动到另一个对象。在代码中,我选择了我想要移动的功能。我使用 ReSharper>重构>移动但没有任何反应。

2 个答案:

答案 0 :(得分:4)

选项1:剪切和粘贴

这是我在答案中添加的新选项。这是迄今为止最简单的。

  1. 剪切您要移动的代码。
  2. 粘贴到新位置。
  3. 您可以点击一个图标,然后选择应用移动重构
  4. 我不确定此选项是否始终有效。

    选项2:添加要作为成员移动的对象

    我发现重构>移动仅在您将该对象作为成员时才有效。成员必须是具体类型,而不是接口。例如,

    public class MyController : Controller
    {
        // ReSharper 8.2 will give the option to move to this object only.
        private MyRepository _repo;
    
        // ...
    
        public FunctionToMove()
        {
            // Do stuff.
        }
    }
    

    当你考虑它时,这是有道理的,因为ReSharper想要重构工作代码。您必须具有对该对象的引用才能调用"移动"方法。即便如此,在这种情况下,Resharper可能会考虑不同的UI决策。 (像消息一样)

    选项3:更改方法签名

    我无法将private方法移至static课程。我将方法从private更改为public static,然后我可以选择我想要将其移动到的静态类。

答案 1 :(得分:1)

尝试通过ReSharper Refactor菜单移动文件时,我也遇到了这个问题。在“移动”对话框中选中“要启用撤消,打开所有带有更改以进行编辑的文件”框,修复了该问题。