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