4

我正在使用 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都是同一类中的其他静态方法。

4

1 回答 1

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) ;
   } 
} 

注意从“事物”到“这个”的变化。

于 2013-06-22T03:55:00.397 回答