使用ReSharper将扩展方法转换为实例方法?

Mar*_*oDS 5 .net c# resharper refactoring visual-studio

假设我有一个班级:

public class Foo
{
    public int Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

并且扩展方法:

public static class FooExtensions
{
    public static void DoSomething(this Foo foo, int someNumber)
    {
        foo.Bar += someNumber;
    }
}
Run Code Online (Sandbox Code Playgroud)

什么是最方便的方法来删除FooExtensions类并改变Foo它变为:

public class Foo
{
    public int Bar { get; set; }

    public void DoSomething(int someNumber)
    {
        Bar += someNumber;
    }
}
Run Code Online (Sandbox Code Playgroud)

ReSharper似乎没有提供一步一步的行动(奇怪的是,这似乎是一个非常简单的重构),但我可以结合哪些其他行动来避免过多的复制/粘贴和手动工作?

Mar*_*oDS 4

显然,有一个ReSharper 动作可以用于此目的,但它的命名有点尴尬(恕我直言)。它称为“使方法非静态”。

可以在此处找到该文档。请注意,它没有具体提及扩展方法。

相同的重构适用于其他类型的静态方法(非扩展),这可能解释了命名的原因。