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



假设我有一个类:

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

和扩展方法:

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

删除FooExtensions类并更改Foo使其变为:

public class Foo
{
    public int Bar { get; set; }
    public void DoSomething(int someNumber)
    {
        Bar += someNumber;
    }
}

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

显然,有一个 ReSharp 操作,但它的名字有点尴尬(恕我直言)。它被称为"使方法非静态"。

文档可在此处找到。请注意,它没有特别提到扩展方法。

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

最新更新