Visual Studio のリファクタリング:削除メソッド
-
08-06-2019 - |
質問
削除メソッドのリファクタリングを実行できる Visual Studio アドインはありますか?
次のメソッドがあるとします。
Result DoSomething(parameters)
{
return ComputeResult(parameters);
}
または、Result が void であるバリアント。
リファクタリングの目的は、DoSomething へのすべての呼び出しを ComputeResult への呼び出し、または ComputeResult がメソッド呼び出しでない場合はパラメーターを使用する式への呼び出しに置き換えることです。
解決
質問が理解できれば、Resharper はこれを「インライン メソッド」と呼ぶことになります。 Ctrl - R + 私
他のヒント
私なら、最も簡単な方法でそれを行います。
- ComputeResult メソッドの名前を ComputeResultX に変更します
- DoSomething メソッドの名前を ComputeResult に変更します
- DoSomething メソッド (現在は ComputeResult) を削除します。
- ComputeResultX メソッドの名前を ComputeResult に戻します
おそらく VS は最後の名前変更のために競合を示すでしょうが、それは無視してください。
「名前を変更する」とは次のことを意味します。メソッドの名前を上書きし、ドロップダウン (Shift+Alt+F10) を使用して「名前の変更」を選択します。すべての出現箇所が新しい名前に置き換えられます。
Visual Studio 2005 および 2008 に追加のリファクタリング オプションを追加するために利用できる製品がいくつかあります。より優れた製品のいくつかは次のとおりです。 リファクタリング!プロ そして リシャーパー.
削除メソッドに関しては、標準的なリファクタリングの本に、これを段階的に行う方法についての説明があります。
個人的には、次のようなパターンに従います (各ステップの間に単体テストのコンパイルと実行が行われると仮定します)。
- 新しいメソッドを作成する
- 古いメソッドの本体を削除し、新しいメソッドを呼び出すように変更します。
- 古いメソッドへのすべての参照を検索し (メソッド名を右クリックして「すべての参照を検索」を選択)、それらを新しいメソッドへの呼び出しに変更します。
- 古いメソッドを [Obsolete] としてマークします (そのメソッドの呼び出しはビルド中に警告として表示されます)
- 古いメソッドを削除する
そのようなリファクタリングに関しては、試してみてください リシャープ.
メソッド名を右クリックし、「使用箇所の検索」をクリックして、参照が見つからなくなるまでリファクタリングします。
そして、dlamblin が述べたように、ReSharper の最新バージョンにはメソッドをインライン化する可能性があります。これだけで必要なことができるはずです。
Visual Studio でメソッド名を右クリックし、[すべての参照の検索] をクリックすることもできます。
私は個人的にはただやります CTRL + シフト + H に Find & Replace