同じクラスのインスタンスである場所のすべてのオカレンスobj.Method1()
を置き換える必要があります。ReSharperまたはVS2010はこれを許可しますか?obj.Method2()
obj
3 に答える
次のように、ReSharper置換パターン(ReSharper-> Tools-> Pattern Catalog、Add Pattern)を作成できます。
ここで、式objのタイプをクラス( Method1を含む)に変更する必要があります。
次に、[保存]を押してから、[今すぐ検索]を押して、すべてのMethod1()呼び出し を取得します。
次に、[置換]をクリックすると、すべてのMethod1呼び出しがタイプセーフにMethod2に置き換えられます。
私は騙します-3ポイントのシンボリック名前変更を行います(右クリック->メソッド名の名前変更)
- 方法1->温度
- 方法2->方法1
- 温度->方法2
これはコード機能を変更しませんが、メソッド自体の名前が間違っていることを除いて、すべてのコードを正しい名前を使用するように更新します-メソッドの名前を手作業と出来上がりに変更するだけです-少しハッキーですが、高速で効果的です。
これは、マネージコード内にあるすべてのメソッド呼び出しに依存します(VSが名前を変更する方法/内容を認識できるようにするため)。XMLコメントがある場合、C#の名前変更はこれをうまく処理しますが、VBは処理しません-ReSharperについて言及しているので、C#を使用していると思いますか?
これは、メソッドのシグネチャが同一であることも前提としています(そうでない場合は、大量のコピー/貼り付けの準備をしてください)
Method1の本体をこのようにします
public void Method1(...) { return Method2(...); }
そして、Method1でリファクタリング「インラインメソッド」を呼び出します。