2012-02-16 47 views
0

我想將一個方法從一個類移到另一個類,這意味着將該方法的實例變量提升爲另一個類中方法的參數。強制提取到Visual Studio中的靜態方法

有沒有辦法做到這一點?像提取靜態方法,那就更好了(即強制將靜態提取的方法,它會自動將所有的實例變量參數。)

例如:

string y = InstanceVariable; 
return new string(y.ToCharArray().Reverse().ToArray()); 

應該改爲:

private static string ExtractedMethod(string InstanceVariable) 
{ 
    string y = InstanceVariable; 
    return new string(y.ToCharArray().Reverse().ToArray()); 
} 

謝謝。

回答

4

選擇只有局部變量的行,然後CTRL + R + M(或右鍵單擊,重構,提取方法)。如果您沒有使用正在提取的代碼塊中的任何字段,它會自動將其設置爲靜態。

您需要手動確保沒有字段引用 - 它沒有選項可以爲您執行此操作。

像ReSharper,CodeRush和JustCode這樣的插件應該能夠在類之間調用方法;並可能自動刪除字段引用。