我正在使用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);
}
}
GetEndOfQuarter
和GetStartOfQuarter
都是同一类中的其他静态方法。
答案 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'的变化。