7

remove メソッドのリファクタリングを実行できる Visual Studio アドインはありますか?
次のメソッドがあるとします。

Result DoSomething(parameters)  
{  
    return ComputeResult(parameters);  
}  

または、結果が無効なバリアント。

リファクタリングの目的は、DoSomething へのすべての呼び出しを ComputeResult への呼び出し、または ComputeResult がメソッド呼び出しでない場合はパラメーターを使用する式に置き換えることです。

4

6 に答える 6

6

質問が理解できれば、Resharper はこの「インライン メソッド」を呼び出します - Ctrl- R+I

于 2008-08-12T07:48:33.443 に答える
1

私はそれを最も簡単な方法で行います:

  1. ComputeResult メソッドの名前を ComputeResultX に変更
  2. DoSomething メソッドの名前を ComputeResult に変更
  3. DoSomething メソッド (現在は ComputeResult) を削除します。
  4. ComputeResultX メソッドの名前を ComputeResult に戻します

最後の名前変更が原因で VS に競合が表示される可能性がありますが、無視してください。

「名前を変更する」とは、メソッドの名前を上書きし、ドロップダウン (Shift + Alt + F10) を使用して「名前を変更」を選択することを意味します。すべての出現箇所が新しい名前に置き換えられます。

于 2008-08-12T07:04:26.417 に答える
1

Visual Studio 2005 および 2008 に追加のリファクタリング オプションを追加できる製品がいくつかあります。優れた製品のいくつかはRefactor です! プロリシャーパー

メソッドを削除する限り、これを段階的に行う方法については、正規のリファクタリングの本に説明があります。

個人的には、次のようなパターンに従っています (各ステップ間で単体テストのコンパイルと実行が行われると仮定します)。

  1. 新しいメソッドを作成する
  2. 古いメソッドの本体を削除し、新しいメソッドを呼び出すように変更します
  3. 古いメソッドへのすべての参照を検索し (メソッド名を右クリックして [すべての参照を検索] を選択)、それらを新しいメソッドへの呼び出しに変更します。
  4. 古いメソッドを [Obsolete] としてマークします (これを呼び出すと、ビルド中に警告として表示されるようになります)
  5. 古いメソッドを削除する
于 2008-08-12T07:44:42.403 に答える
1

そんなリファクタリングならReSharperを試してみてください。

メソッド名を右クリックし、「使用箇所の検索」をクリックして、参照が見つからなくなるまでリファクタリングします。

dlamblin が述べたように、ReSharper の最新バージョンには、メソッドをインライン化する可能性があります。それはあなたが必要とすることだけをするはずです。

于 2008-08-12T06:25:27.307 に答える
0

メソッド名を右クリックして、Visual Studio で [すべての参照を検索] をクリックすることもできます。

私は個人的にはCTRL++をするSHIFTだけですHFind & Replace

于 2008-08-12T07:19:05.250 に答える
0

ReSharperは間違いなくリファクタリング用の VS 2008 プラグインです。ただし、この形式のリファクタリングは 1 ステップで行うわけではありません。Refactor->DoSomething の名前を ComputeResult に変更し、実際の ComputeResult との競合を無視する必要があります。次に、DoSomething だった定義を削除します。ほぼ一歩です。

しかし、おそらくそれは1 つのステップを行うことができます。私がそれを正しく読んだら。

于 2008-08-12T07:35:35.030 に答える