ReSharper 重构 > 移动不起作用

问题描述 投票:0回答:3

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

c# refactoring resharper
3个回答
5
投票

选项 1:剪切并粘贴

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

  1. 剪切您要移动的代码。
  2. 粘贴到新位置。
  3. 将出现一个图标,您可以单击该图标并选择应用移动重构

我不确定此选项是否始终有效。

选项 2:添加您想要移入的对象作为成员

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

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 希望重构工作代码。您必须拥有对该对象的引用才能调用“moved”方法。即便如此,在这种情况下,Resharper 可能会考虑不同的 UI 决策。 (点赞留言)

选项 3:更改方法签名

我在将

private
方法移动到
static
类时遇到问题。我将方法从
private
更改为
public static
,然后我可以选择我想要将其移动到的静态类。


1
投票

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


0
投票

我最近发现,当在解决方案资源管理器中进行主动搜索时,“移动到文件夹”命令在 Visual Studio 2022 中不起作用。不知道为什么,但尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.