3

同じクラスのインスタンスである場所のすべてのオカレンスobj.Method1()を置き換える必要があります。ReSharperまたはVS2010はこれを許可しますか?obj.Method2()obj

4

3 に答える 3

7

次のように、ReSharper置換パターンReSharper-> Tools-> Pattern CatalogAdd Pattern)を作成できます。

ここに画像の説明を入力してください

ここで、式objのタイプをクラス( Method1を含む)に変更する必要があります。

次に、[保存]を押してから、[今すぐ検索]を押して、すべてのMethod1()呼び出し を取得します。

ここに画像の説明を入力してください

次に、[置換]をクリックすると、すべてのMethod1呼び出しがタイプセーフにMethod2に置き換えられます。

于 2012-04-26T16:03:55.267 に答える
4

私は騙します-3ポイントのシンボリック名前変更を行います(右クリック->メソッド名の名前変更)

  • 方法1->温度
  • 方法2->方法1
  • 温度->方法2

これはコード機能を変更しませんが、メソッド自体の名前が間違っていることを除いて、すべてのコードを正しい名前を使用するように更新します-メソッドの名前を手作業と出来上がりに変更するだけです-少しハッキーですが、高速で効果的です。

これは、マネージコード内にあるすべてのメソッド呼び出しに依存します(VSが名前を変更する方法/内容を認識できるようにするため)。XMLコメントがある場合、C#の名前変更はこれをうまく処理しますが、VBは処理しません-ReSharperについて言及しているので、C#を使用していると思いますか?

これは、メソッドのシグネチャが同一であることも前提としています(そうでない場合は、大量のコピー/貼り付けの準備をしてください)

于 2012-04-26T15:27:07.520 に答える
0

Method1の本体をこのようにします

public void Method1(...) { return Method2(...); }

そして、Method1でリファクタリング「インラインメソッド」を呼び出します。

于 2012-04-27T19:53:37.523 に答える