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

时间:2016-06-06 15:10:13

标签: c# .net visual-studio refactoring 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似乎没有采取一步行动来做到这一点(奇怪的是,这似乎是一个非常简单的重构),但我可以结合哪些其他行动以避免过多的复制/粘贴和手动工作?

1 个答案:

答案 0 :(得分:4)

显然, 是一个ReSharper动作,但它的命名有点笨拙(imho)。它被称为“使方法非静态”。

可以找到文档here。请注意,它没有具体提到扩展方法。

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