コードの呼び出し階層を表示することで、選択したメソッド、プロパティ、またはコンストラクターに対するすべての呼び出し (場合によってはその呼び出しから) 間を移動できます。 これにより、コードがどのように流れるかを理解し、コードに対する変更の影響を評価することができます。 複数のレベルのコードを調べて、メソッド呼び出しの複雑なチェーンとコードへの追加のエントリ ポイントを表示できます。 これにより、使用可能なすべての実行パスを調べることができます。
Visual Studio では、デザイン時に呼び出し階層を表示できます。 つまり、ブレークポイントを設定し、デバッガーを起動してランタイム呼び出し履歴を表示する必要はありません。
[呼び出し階層] ウィンドウを使用する
[呼び出し階層] ウィンドウを表示するには、メソッド、プロパティ、またはコンストラクター呼び出しの名前をコード エディターで右クリックし、[呼び出し階層の表示] を選択します。
メンバー名は、[ 呼び出し階層 ] ウィンドウのツリー ビュー ウィンドウに表示されます。 メンバー ノード、メンバー名への呼び出し、および C++ の場合、メンバー名から呼び出しを展開すると、サブノードが表示されます。
C++ コードの場合、メンバーとの間で明示的な呼び出しを確認できます。
注
C++ コードでは、コンストラクターや型変換メソッドなど、メンバー関数を暗黙的に呼び出すことができます。これらの暗黙的な呼び出しは、必ずしもリストに含まれるとは限りません。
C# および Visual Basic コードの場合、メンバーへの呼び出しは表示できますが、次からの呼び出しは表示されません。
[ 呼び出し対象 ] ノードを展開すると、選択したメンバーを呼び出すすべてのメンバーが表示されます。
C++ の場合、[ 呼び出しからの呼び出し ] ノードを展開すると、選択したメンバーによって (明示的に) 呼び出されたすべてのメンバーが表示されます。
その後、各呼び出し元メンバーを展開して、 呼び出し元ノードと C++ の 呼び出し元 ノードを表示できます。 これにより、次の図に示すように、呼び出し元のスタックに移動できます。
仮想または抽象として定義されているメンバーの場合は、 Overrides メソッド名 ノードが表示されます。 インターフェイス メンバーの場合、 Implements メソッド名 ノードが表示されます。 これらの展開可能なノードは、[ 呼び出し ] ノードと [ 呼び出し] ノードと同じレベルで表示されます。
ツール バーの [検索範囲 ] ボックスには、[ マイ ソリューション]、[ 現在のプロジェクト]、[ 現在のドキュメント] の選択肢があります。
[呼び出し階層] ツリー ビュー ペインで子メンバーを選択する場合:
[呼び出し階層の詳細] ウィンドウには、その子メンバーが親メンバーから呼び出されるコードのすべての行が表示されます。
[ コード定義] ウィンドウが開いている場合は、選択したメンバーのコードが表示されます (C++ のみ)。 このウィンドウの詳細については、「 コードの構造を表示する」を参照してください。
注
呼び出し階層機能では、メソッド グループ参照が見つかりません。これには、メソッドがイベント ハンドラーとして追加されるか、デリゲートに割り当てられる場所が含まれます。 メソッドへのすべての参照を検索するには、[ すべての参照の検索 ] コマンドを使用します。
ショートカット メニュー項目
次の表では、ツリー ビュー ペインでノードを右クリックしたときに使用できるいくつかのショートカット メニュー オプションについて説明します。
コンテキスト メニュー項目 | 説明 |
---|---|
新しいルートとして追加 | 選択したノードを新しいルート ノードとしてツリー ビュー ペインに追加します。 これにより、特定のサブツリーに注目することができます。 |
ルートの削除 | 選択したルート ノードをツリー ビュー ペインから削除します。 このオプションは、ルート ノードからのみ使用できます。 [ ルートの削除 ] ツール バー ボタンを使用して、選択したルート ノードを削除することもできます。 |
定義に移動 | 選択したノードで [定義へ移動] コマンドを実行します。 これにより、メンバー呼び出しまたは変数定義の元の定義に移動します。 [定義へ移動]コマンドを実行するには、選択したノードをダブルクリックするか、選択したノードで F12 キーを押します。 |
すべての参照を検索する | 選択したノードで [すべての参照の検索] コマンドを実行します。 これにより、クラスまたはメンバーを参照するプロジェクト内のすべてのコード行が検索されます。 Shift + F12 キーを押して、選択したノードで [すべての参照の検索] コマンドを実行することもできます。 |
コピー | 選択したノードの内容をコピーします (サブノードはコピーしません)。 |
更新 | 選択したノードを折りたたんで、再展開すると現在の情報が表示されます。 |