Visualización de la jerarquía de llamadas

Al visualizar la jerarquía de llamadas del código, puede navegar por todas las llamadas a (y en ocasiones de) un método, una propiedad o un constructor seleccionados. Esto le permite comprender mejor cómo fluye el código y evaluar los efectos de los cambios en el código. Puede examinar varios niveles de código para ver cadenas complejas de llamadas de métodos y puntos de entrada adicionales al código. Esto le permite explorar todas las posibles rutas de acceso de ejecución.

En Visual Studio, puede ver una jerarquía de llamadas en tiempo de diseño. Esto significa que no tiene que establecer un punto de interrupción e iniciar el depurador para ver la pila de llamadas de tiempo de ejecución.

Uso de la ventana Jerarquía de llamadas

Para mostrar la ventana Jerarquía de llamadas, haga clic con el botón derecho en el nombre de un método, una propiedad o una llamada de constructor y seleccione Ver jerarquía de llamadas.

El nombre del miembro aparece en un panel de vista de árbol en la ventana Jerarquía de llamadas. Si expande el nodo del miembro, aparecen los subnodos Llamadas anombre del miembro y, en C++, Llamadas desdenombre del miembro.

Para el código de C++, puede ver llamadas explícitas tanto a como desde un miembro:

Call Hierarchy for C++ code in Visual Studio

Nota:

En el código de C++, se puede llamar a funciones miembro implícitamente, como un constructor o un método de conversión de tipos; estas llamadas implícitas no se incluyen necesariamente en la lista.

En el código de C# y de Visual Basic, puede ver las llamadas a un miembro, pero no las llamadas desde:

Call Hierarchy for C# code in Visual Studio

  • Si expande el nodo Llamadas a, se muestran todos los miembros que llaman al miembro seleccionado.

  • Para C++, se expande el nodo Llamadas desde , se muestran todos los miembros a los que llama el miembro seleccionado (explícitamente).

Luego puede expandir cada miembro que realiza llamadas para ver sus nodos Llamadas a y, en C++, Llamadas desde. Esto le permite navegar por la pila de autores de llamada, tal y como se muestra en la siguiente imagen:

Call Hierarchy window with multiple levels expanded

Para los miembros que están definidos como virtuales o abstractos, se muestra un nodo Invalida “nombre de método”. Para los miembros de interfaz, se muestra un nodo Implementa nombre de método. Estos nodos expansibles aparecen en el mismo nivel que los nodos Llamadas a y Llamadas desde.

El cuadro Ámbito de búsqueda en la barra de herramientas contiene opciones para Mi solución, Proyecto actual y Documento actual.

Al seleccionar un miembro secundario en el panel de vista de árbol Jerarquía de llamadas:

  • El panel de detalles Jerarquía de llamadas muestra todas las líneas de código en que el miembro primario llama a ese miembro secundario.

  • La ventana Definición de código, si está abierta, muestra el código del miembro seleccionado (solo C++). Para más información sobre esta ventana, vea Visualización de la estructura del código.

Nota:

La característica Jerarquía de llamadas no encuentra referencias a grupos de métodos, que incluyen los lugares en los que se agrega un método como controlador de eventos o se asigna a un delegado. Para buscar todas las referencias a un método, puede usar el comando Buscar todas las referencias.

Elementos del menú contextual

En la tabla siguiente, se describen varias opciones del menú contextual que están disponibles cuando hace clic con el botón derecho en un nodo en el panel de vista de árbol.

Elemento del menú contextual Descripción
Agregar como nueva raíz Agrega el nodo seleccionado al panel de vista de árbol como un nuevo nodo raíz. Esto le permite centrar la atención en un subárbol específico.
Quitar raíz Quita el nodo raíz seleccionado del panel de vista de árbol. Esta opción solo está disponible desde un nodo raíz.

También puede usar el botón de la barra de herramientas Quitar raíz para quitar el nodo raíz seleccionado.
Ir a definición Ejecuta el comando Ir a definición en el nodo seleccionado. De esta forma, se desplaza a la definición original de una llamada de miembro o definición de variable.

Para ejecutar el comando Ir a definición, también puede hacer doble clic en el nodo seleccionado o presionar F12 en el nodo seleccionado.
Buscar todas las referencias Ejecuta el comando Buscar todas las referencias en el nodo seleccionado. De esta forma, busca todas las líneas de código en el proyecto que hacen referencia a una clase o un miembro.

También puede usar MAYÚS+F12 para ejecutar el comando Buscar todas las referencias en el nodo seleccionado.
Copy Copia el contenido del nodo seleccionado (pero no sus subnodos).
Actualizar Contrae el nodo seleccionado para que, al volver a expandirlo, se muestre la información actual.