72

インターフェイスのメソッド/プロパティ/などへの参照ではなく、すべての実装をすばやく見つける方法はありますか? サンプルコードは次のとおりです。

public class SomeClass : IBaseClass
{
  public Int32 GetInt()
  {
     return 1;
  }
}

public interface IBaseClass
{
  public Int32 GetInt();
}

public class SomeOtherClass
{
  IBaseClass _someClass;
  private TestMethod()
  {
    _someClass = new SomeClass();
    _someClass.GetInt();
  }
}

SomeOtherClass.TestMethod() を確認しながら、SomeClass.GetInt() にすばやく到達したいと考えています。_someClass.GetInt() を右クリックして [定義に移動] をクリックすると、インターフェイスに移動します。[Find All References] をクリックすると、GetInt() メソッドを実装するクラスだけでなく、すべての使用のリストが表示される可能性があります。

これを見つけるためのより速い方法はありますか?他の開発者からのヒントはありますか? 依存関係のほとんどに DI を使用しています。つまり、深くネストされたコードをトレースするには永遠に時間がかかります。

4

6 に答える 6

118

私はコーディング中にマウスを使うのが好きではないので、通常は

  • メソッドの上にカーソルを移動します
  • ctrl+k clrl+tと入力して、呼び出し階層ウィンドウを開きます
  • 実装ノードに移動します。
  • Return と入力して、選択した実装に移動します

私の知る限り、これは ReSharper を使用せずにメソッドの実装を見つける最も簡単な方法です。

(ちなみに: 同じシステムを使用して、クラス メソッドの実装から対応するインターフェイス宣言に移動できます: ルートを選択するだけです)

于 2011-11-24T16:28:56.097 に答える
24

Alt-End は ReSharper でこれを行うと思います。

于 2009-08-11T16:44:57.393 に答える
9

ReSharper を使用しない場合、これを行う最善の方法は次のとおりです。

ファイル内を検索 (Ctrl+Shift+F) 何を検索: "class*ISomeClass" 検索オプション: "ワイルドカードを使用"

これにより、すべての実装が検出され、具体的な実装で関数を検索できます。

于 2010-05-19T12:32:40.607 に答える
3

このプラグインを試すことができます:

http://blog.rthand.com/post/2010/01/18/Meet-e2809cGo-To-Implementatore2809d-DXCore-plugin-for-Visual-Studio.aspx

于 2010-06-09T11:56:56.943 に答える
2

インターフェイスが、通常ナビゲートする具体的なモデルと同じライブラリにある場合は、具体的なオブジェクトに「usingalias」を追加できます。「使用法」はとにかくヘルパーであり、これは役立ちます。

using System;
using PrimaryImplementation = YourNamespace.YourConcreteObject;


public interface IYourInterface{

}

インターフェイスに移動すると、インターフェイスの主要な実装にすばやく(そして汚い)方法で到達できます。F12-> F12!

于 2013-03-06T16:18:53.497 に答える
1

R# には、ポップアップ メニューに [実装に移動] オプションがあり、これは非常に便利です。

于 2009-08-11T16:53:01.760 に答える