簡體   English   中英

Resharper不允許我將靜態方法重構為實例方法

[英]Resharper not allowing me to refactor a static method to an instance method

我正在使用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都是同一個類中的其他靜態方法。

您不需要做任何特殊操作來使其成為實例方法。 只需刪除靜態限定符即可完成。

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'的變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM