呼び出し階層Call Hierarchy

呼び出し階層は、選択したメソッド、プロパティ、またはコンストラクターとの間のすべての呼び出しを表示することによって、コード内を移動することができます。Call Hierarchy enables you to navigate through your code by displaying all calls to and from a selected method, property, or constructor. これにより、コード フローをより理解して、コードへの変更の効果を評価することができます。This enables you to better understand how code flows and to evaluate the effects of changes to code. 複数のコードのレベルを調査して、メソッド呼び出しの複雑なチェーンとコードへの追加のエントリ ポイントを表示することで、すべての実行可能なパスを調べることができます。You can examine several levels of code to view complex chains of method calls and additional entry points to the code, which enables you to explore all possible execution paths.

呼び出し階層は、デバッガーによって表示される呼び出し履歴とは異なり、デザイン時に使用できます。Call Hierarchy is available at design time, unlike the call stack that is displayed by the debugger.

呼び出し階層の使用Using Call Hierarchy

[呼び出し階層] ウィンドウを表示するには、メソッド、プロパティ、またはコンストラクターの呼び出しの名前を右クリックし、[呼び出し階層の表示] をクリックします。To display the Call Hierarchy window, right-click the name of a method, property, or constructor call, and then click View Call Hierarchy.

[呼び出し階層] ウィンドウのツリー ビュー ペインに、メンバー名が表示されます。The member name appears in a tree view pane in the Call Hierarchy window. メンバー ノードを展開すると、Calls Tomember name サブノードと Calls Frommember name サブノードが表示されます。If you expand the member node, Calls Tomember name and Calls Frommember name subnodes appear. 次の図は、[呼び出し階層] ウィンドウ内でのこれらのノードを示しています。The following illustration shows these nodes in the Call Hierarchy window.

1 つのノードが開いた呼び出し階層Call Hierarchy with one node open
[呼び出し階層] ウィンドウCall Hierarchy window

  • Calls To ノードを展開すると、選択したメンバーを呼び出すすべてのメンバーが表示されます。If you expand the Calls To node, all members that call the selected member are displayed.

  • Calls From ノードを展開すると、選択したメンバーによって呼び出されるすべてのメンバーが表示されます。If you expand the Calls From node, all members that are called by the selected member are displayed.

その後、これらの各サブノード メンバーを Calls To ノードと Calls From ノードに展開することができます。You can then expand each of these subnode members into Calls To and Calls From nodes. これにより、次の図に示すように、呼び出し元のスタックに移動することができます。This enables you to navigate into the stack of callers, as shown in the following illustration.

複数のノードが開いた呼び出し階層Call Hierarchy Multiple Nodes Open
[呼び出し階層] ウィンドウCall Hierarchy window

仮想または抽象として定義されたメンバーの場合、[Overrides method name ](メソッド名のオーバーライド) ノードが表示されます。For members that are defined as either virtual or abstract, an Overrides method name node appears. インターフェイス メンバーの場合は、[Implements method name](メソッド名の実装) ノードが表示されます。For interface members, an Implements method name node appears. これらの拡張可能なノードは、Calls To ノードおよび Calls From ノードと同じレベルで表示されます。These expandable nodes appear at the same level as the Calls To and Calls From nodes.

ツールバーの [検索範囲] ボックスには、[マイ ソリューション][現在のプロジェクト]、および [現在のドキュメント] の選択肢が含まれています。The Search Scope box on the toolbar contains choices for My Solution, Current Project, and Current Document.

[呼び出し階層]ツリー ビュー ペインで子メンバーを選択した場合:When you select a child member in the Call Hierarchy tree view pane:

  • [呼び出し階層] 詳細ウィンドウに、その子メンバーが親メンバーから呼び出されるすべてのコード行が表示されます。The Call Hierarchy details pane displays all lines of code in which that child member is called from the parent member.

  • [コード定義ウィンドウ] が開いている場合は、選択したメンバーのコードが表示されます。The Code Definition Window, if open, displays the code for the selected member. このウィンドウは C# および C++ で使用できます。This window is available in C# and C++. このウィンドウの詳細については、「コードの構造の表示」を参照してください。For more information about this window, see Viewing the Structure of Code.

注意

呼び出し階層はメソッド グループ参照を検索しません。これには、メソッドがイベント ハンドラーとして追加される場所、またはメソッドがデリゲートに割り当てられる場所が含まれます。Call Hierarchy does not find method group references, which includes places where a method is added as an event handler or is assigned to a delegate. メソッドへのすべての参照を見つけるには、[すべての参照の検索] コマンドを使用できます。To find all references to a method, you can use the Find All References command.

ショートカット メニュー項目Shortcut Menu Items

次の表では、ツリー ビュー ペイン内のノードを右クリックして使用できるいくつかのショートカット メニューのオプションについて説明します。The following table describes several shortcut menu options that are available when you right-click a node in the tree view pane.

コンテキスト メニュー項目Context Menu Item 説明Description
新規ルートとして追加Add As New Root 新しいルート ノードとして選択したノードをツリー ビュー ペインに追加します。Adds the selected node to the tree view pane as a new root node. これにより、特定のサブツリーに集中することができます。This enables you to focus your attention on a specific subtree.
ルートの削除Remove Root 選択されたルート ノードをツリー ビュー ペインから削除します。Removes the selected root node from the tree view pane. このオプションはルート ノードからのみ使用できます。This option is available only from a root node.

選択したルート ノードを削除するには、[ルートの削除] ツールバー ボタンを使用することもできます。You can also use the Remove Root toolbar button to remove the selected root node.
定義に移動Go To Definition 選択したノードで、[定義へ移動] コマンドを実行します。Runs the Go To Definition command on the selected node. これにより、メンバーの呼び出しの元の定義または変数の定義に移動します。This navigates to the original definition for a member call or variable definition.

選択したノードをダブルクリックするか、選択したノードで F12 キーを押しても、[定義へ移動] コマンドを実行できます。To run the Go To Definition command, you can also double-click the selected node or press F12 on the selected node.
すべての参照の検索Find All References 選択したノードで、[すべての参照の検索] コマンドを実行します。Runs the Find All References command on the selected node. これにより、クラスまたはメンバーを参照するプロジェクト内のすべてのコード行を見つけます。This finds all the lines of code in your project that reference a class or member.

Shift キーを押しながら F12 キーを押しても、選択したノードで [すべての参照の検索] コマンドを実行できます。You can also use SHIFT+F12 to run the Find All References command on the selected node.
コピーCopy 選択したノードのコンテンツをコピーします (そのサブ ノードはコピーしません)。Copies the contents of the selected node (but not its subnodes).
最新の情報に更新Refresh 選択したノードを折りたたみ、再度展開して最新情報が表示されるようにします。Collapses the selected node so that re-expanding it displays current information.