我有一个函数想要移动到另一个对象。在代码中,我选择要移动的函数。我使用 ReSharper > Refactor > Move 但没有任何反应。
这是我添加到答案中的新选项。这是迄今为止最简单的。
我不确定此选项是否始终有效。
我发现 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 决策。 (点赞留言)
我在将
private
方法移动到 static
类时遇到问题。我将方法从 private
更改为 public static
,然后我可以选择我想要将其移动到的静态类。
我在尝试通过 ReSharper 重构菜单移动文件时也遇到了这个问题。选中“移动”对话框中的“要启用撤消,打开所有进行更改的文件进行编辑”框修复了该问题。
我最近发现,当在解决方案资源管理器中进行主动搜索时,“移动到文件夹”命令在 Visual Studio 2022 中不起作用。不知道为什么,但尝试一下。