Resharper不允许我将静态方法重构为实例方法

时间:2013-06-22 02:44:40

标签: c# unit-testing refactoring resharper resharper-7.1

我正在使用ReSharper将静态方法重构为实例方法,但ReSharper会抛出一个错误:

  

方法没有合适的参数可以变成'this'

这是什么意思?这是我的班级方法:

public static DateTime PreviousOrCurrentQuarterEnd(DateTime date)
{
    Quarter qrtr = GetQuarter(date);
    DateTime endOfQuarter = GetEndOfQuarter(date.Year, qrtr);
    if (endOfQuarter == date)
        return date;
    else
    {
        DateTime startOfLast = GetStartOfQuarter(date.Year, qrtr);
        return startOfLast.AddDays(-1);
    }
}

GetEndOfQuarterGetStartOfQuarter都是同一类中的其他静态方法。

1 个答案:

答案 0 :(得分:4)

您不需要做任何特殊的事情来使其成为实例方法。只需删除静态限定符即可完成。

Resharper具有将以下静态方法转换为实例方法的功能:

public class MyClass {
    public static void DoSomething( MyClass thing, int value) {
        thing.Action (value) ;
   } 
} 

变为

public class MyClass {
    public void DoSomething( int value) {
        this.Action (value) ;
   } 
} 

注意从'thing'到'this'的变化。

相关问题