C#で定義されたインターフェイスがあるとします。インターフェイスの実装を提供するすべてのクラスを見つける最も簡単な方法は何ですか?
力ずくの方法は、Visual Studioで「参照の検索」を使用し、結果を手動で調べて使用と実装を分離することですが、大きなコードベースのインターフェースの場合参照実装が比較的少ない場合、これは時間がかかり、エラーが発生しやすくなります。
Javaでは、コードベースでjavadocを実行すると(-privateオプションを使用してプライベートクラスを含めます)、インターフェイスのドキュメントページが生成されます(例 Comparable )。サブインターフェース(サブインターフェースの実装クラスは含まれていませんが、これらは、リストされているサブインターフェースにドリルダウンすることで比較的簡単に判別できます)。私が探しているのはこの機能ですが、C#とVisual Studioを使用しています。
(コメントに基づいて編集...)
ReSharperがインストールされている場合:
Visual Studioでタイプ名を右クリックし、[継承に移動]を選択します。または、タイプ名を選択し、ReSharper/View/Type Hierarchyに移動して新しいタブを開きます。 (メニューにはキーボードショートカットが表示されます-これは異なる場合があります。そのため、検索方法を説明しました:)
ReSharperがない場合:
メソッド名(インターフェースの定義または他のクラスの実装)を右クリックして、[View Call Hierarchy]を選択できます。 [呼び出し階層]ウィンドウには、インターフェイスメソッド実装のすべての場所を見つけることができる "Implements"フォルダがあります。
カーソルをクラスまたはインターフェイスタイプに置き、
CTRL + F12
Visual Studio 2010以降
メンバーメソッドを右クリックし、[呼び出し階層の表示]を選択します。 Implementsフォルダーを展開します。これは、メソッドが属するインターフェースを実装するすべてのタイプをリストします。
Resharper 7を使用
インターフェースを右クリックし、[移動]> [派生シンボル]を選択します。 boldにリストされている記号は、インターフェースから直接派生しています。太字以外の記号はスーパークラスから派生しています。
Visual Studio 2015を使用している人のために、この素晴らしい拡張機能 Go To Implementation があります。試してみる。
拡張機能をインストールしたら、インターフェイス(IUrlShortenerなど)を右クリックして[Go To Implementation
]メニューをクリックします。インターフェースを実装するクラスが1つしかない場合は、メニューをクリックすると、直接クラスに移動します。インターフェースを実装するクラスが複数ある場合は、すべてのクラスがリストされます。
Visual Studio 2015を使用している場合は、Visual Studio 2015 Update 1 RCをインストールします。 Visual Studioブログ から:
本日、Visual Studio 2015 Update 1 RCをリリースしました。これは、3週間前にリリースしたUpdate 1 CTPに基づいています。ここで説明するCTPで導入された機能に加えて、リリース候補には次のものが含まれます。
- Go To Implementation。多くの人が待ち望んでいた機能:インターフェースまたは抽象メソッドを右クリックし、このコマンドを選択して実装に移動します。
この機能がVSに組み込まれているとは思いませんが、IIRC Resharper にはこれが含まれています。
インターフェースの正規表現検索を行うことができます。
:(\ *[^},]+,)*\ *IMyInterfaceName
CTRL + SHIFT + Fは、次のウィンドウを起動します。
「移動...」オプションの方が好きです。カーソルを関数呼び出しに置いて、次のことを試してください。
ショートカットキー:
メニュー:
利点:
Shift + F12を使用して、定義を含むすべての参照を表示します。
Resharper ALT + ENDショートカットを使用する場合、すべての継承者を見つけるのに役立つ場合があります。
doxygen は、javadocがJavaと同じように。