我有一个函数想要移动到另一个对象中。在代码中,我选择要移动的函数。我使用ReSharper > Refactor > Move,但是没有任何反应。
我有一个函数想要移动到另一个对象中。在代码中,我选择要移动的函数。我使用ReSharper > 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希望重构成可工作的代码。要调用“移动”方法,必须先引用该对象。即使如此,ReSharper在这种情况下可能会考虑不同的UI决策(例如消息)。
我试图将一个private
方法移动到一个static
类中时遇到了问题。我将该方法从private
更改为public static
,然后我就可以选择要将其移动到的静态类了。