質問

C#で定義されたインターフェイスがあるとします。インターフェイスの実装を提供するすべてのクラスを見つける最も簡単な方法は何ですか?

ブルートフォースの方法は、「参照の検索」を使用することです。 Visual Studioで手動で結果を調べて使用法を実装から分離しますが、比較的少ない実装で頻繁に参照される大規模なコードベースのインターフェイスの場合、これには時間がかかり、エラーが発生しやすくなります。

Javaでは、コードベースでjavadocを実行すると(-privateオプションを使用してプライベートクラスを含める)、インターフェイスのドキュメントページが生成されます(例: Comparable )には、インターフェースのすべての実装クラスとサブインターフェースが含まれます(ただし、クラスの実装クラスは含まれません)サブインターフェイスは、リストされているサブインターフェイスにドリルダウンすることで、比較的簡単に決定できます)。私が探しているのはこの機能ですが、C#とVisual Studioを使用しています。

役に立ちましたか?

解決

(コメントに基づいて編集...)

ReSharperがインストールされている場合:

Visual Studioで、タイプ名を右クリックし、「継承者に移動」を選択します。または、タイプ名を選択し、ReSharper / View / Type Hierarchyに移動して新しいタブを開きます。 (メニューにはキーボードショートカットが表示されます-これは異なる場合があるため、検索方法を説明しました:)

ReSharperがない場合:

  • Reflector を使用すると、すべてのタイプ階層を表示できます。簡単に-型名のすぐ下に、ベース型と派生型の拡張可能なアイテムがあります。 ILSpy dotPeek
  • ReSharperを購入-すばらしいツールです:)

他のヒント

メソッド名(インターフェイスの定義または他のクラスの実装)を右クリックして、[呼び出し階層の表示]を選択できます。 [呼び出し階層]ウィンドウには、[実装]があります。インターフェースメソッド実装のすべての場所を見つけることができるフォルダー。

カーソルをクラスまたはインターフェイスタイプに置き、

CTRL + F12

Visual Studio 2010+を使用

メンバーメソッドを右クリックして、呼び出し階層の表示を選択します。 Implementsフォルダーを展開します。これは、メソッドが属するインターフェースを実装するすべてのタイプをリストします。

ここに画像の説明を入力

Resharper 7を使用

インターフェースを右クリック>移動>派生シンボル。 太字にリストされている記号は、インターフェースから直接派生しています。太字でないシンボルはスーパークラスから派生しています。

ここに画像の説明を入力

Visual Studio 2015を使用している場合、実装に移動。試してみてください。

拡張機能をインストールしたら、インターフェイス(IUrlShortenerなど)を右クリックして、[ Go To Implementation ]メニューをクリックします。インターフェイスを実装するクラスが1つしかない場合、メニューをクリックすると、そのクラスに直接移動できます。インターフェイスを実装するクラスが複数ある場合、すべてのクラスがリストされます。

インターフェイスの正規表現検索を実行できます。

:(\ *[^},]+,)*\ *IMyInterfaceName

CTRL + SHIFT + Fは、次のウィンドウを起動します。

Visual Studioスクリーンショット

「ナビゲート先...」オプション。関数呼び出しにカーソルを置いて、次を試してください:

ショートカットキー:

  1. Ctrl +、(Ctrl +カンマ)

メニュー:

  1. 編集メニュー
  2. [次へ移動...]をクリックします

利点:

  • 「すべての参照を検索」などの参照をすべて表示しません。
  • "タイプ"実装のどのインターフェイスであるかを記録します

Shift + F12キーを使用して、定義を含むすべての参照を表示します。

resharper ALT + END ショートカットを使用すると、すべての継承者を見つけるのに役立ちます。

doxygen はJavadocと同じように.Netになっていると(聞いたことはありませんが)聞いたことがありますjava。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top