Просмотр структуры кода с помощью различных окон инструментов

Классы и их члены в Visual Studio можно изучать с помощью различных окон инструментов, включая представление классов, иерархию вызовов, браузер объектов и определение кода. Эти окна инструментов могут изучать код в проектах Visual Studio, компонентах .NET, com-компонентах, библиотеках динамического канала (DLL) и библиотеках типов (TLB).

Обозреватель решений также позволяет просматривать типы и члены проектов, искать символы, просматривать иерархию вызовов метода, находить ссылки на символы и многое другое, не переключаясь между несколькими окнами инструментов.

Если у вас есть выпуск Visual Studio Enterprise, вы можете использовать карты кода для визуализации структуры кода и его зависимостей во всем решении. Дополнительные сведения см. в разделе Анализ зависимостей с помощью карт кода.

Представление классов (Visual Basic, C#, C++)

Представление классов отображается в обозревателе решений и в отдельном окне. Представление классов отображает элементы приложения. В верхней области отображаются пространства имен, типы, интерфейсы, перечисления и классы, а в нижней области отображаются элементы, принадлежащие типу, выбранному на верхней панели. С помощью этого окна можно перейти к определениям элементов в исходном коде (или в браузере объектов , если элемент определен за пределами решения).

Не нужно компилировать проект для просмотра его элементов в представлении классов. Окно обновляется при изменении кода в проекте.

Вы можете добавить код в проект, выбрав узел проекта и нажав кнопку "Добавить ", чтобы открыть диалоговое окно "Добавить новый элемент ". Код добавляется в отдельный файл.

Если проект установлен в систему управления исходным кодом, каждый элемент представления классов отображает значок, указывающий состояние исходного кода файла. Распространенные команды управления исходным кодом, такие как Check Out, Check In и Get Latest Version , также доступны в контекстном меню элемента.

Панель инструментов представления классов

Панель инструментов представления классов содержит следующие команды:

Имя Description
Новая папка Создает виртуальную папку или вложенную папку, в которой можно упорядочивать часто используемые элементы. Они сохраняются в активном файле решения (SUO). После переименования или удаления элемента в коде он может появиться в виртуальной папке в качестве узла ошибки. Чтобы устранить эту проблему, удалите узел ошибки. При переименовании элемента его можно переместить из иерархии проекта в папку снова.
назад Переходит к ранее выбранному элементу.
Предисловие Переходит к следующему выбранному элементу.
Просмотр схемы классов (только управляемые проекты кода) Становится доступным при выборе пространства имен или типа в представлении классов. При выборе пространства имен схема классов отображает все типы в нем. При выборе типа схема классов отображает только этот тип.

Параметры представления классов

Кнопка "Параметры представления классов " на панели инструментов имеет следующие параметры:

Имя Description
Показать базовые типы Отображаются базовые типы.
Отображение ссылок на проект Отображаются ссылки на проект.
Показать скрытые типы и элементы Скрытые типы и элементы (не предназначенные для использования клиентами) отображаются в светло-серый текст.
Показать общедоступные члены Отображаются общедоступные элементы.
Показать защищенные элементы Отображаются защищенные элементы.
Показать закрытые члены Отображаются закрытые элементы.
Показать другие члены Отображаются другие типы элементов, включая внутренние (или друг в Visual Basic).
Показать унаследованные элементы Отображаются унаследованные элементы.

Контекстное меню представления классов

Контекстное меню (или щелкните правой кнопкой мыши) в представлении классов может содержать следующие команды в зависимости от выбранного типа проекта:

Имя Description
перейти к определению Находит определение элемента в исходном коде или в обозревателе объектов, если элемент не определен в открытом проекте.
Обзор определения Отображает выбранный элемент в браузере объектов.
Поиск всех ссылок Находит выбранный элемент объекта и отображает результаты в окне поиска результатов .
Фильтрация по типу (только управляемый код) Отображает только выбранный тип или пространство имен. Вы можете удалить фильтр, нажав кнопку "Очистить поиск (X) рядом с полем поиска .
Copy Копирует полное имя элемента.
Сортировка по алфавиту Перечисляет типы и члены в алфавитном порядке по имени.
Сортировка по типу элемента Перечисляет типы и элементы в порядке по типу (таким образом, классы предшествуют интерфейсам, интерфейсам предшествуют делегатам и методам перед свойствами).
Сортировка по доступу к члену Перечисляет типы и члены в порядке по типу доступа, например общедоступному или частному.
Группа по типу члена Сортирует типы и элементы в группы по типу объекта.
Перейти к объявлению (только код C++) Отображает объявление типа или члена в исходном коде, если оно доступно.
перейти к определению Отображает определение типа или члена в исходном коде, если оно доступно.
Перейти к ссылке Отображает ссылку на тип или элемент в исходном коде, если он доступен.
Просмотр иерархии вызовов Отображает выбранный метод в окне иерархии вызовов .

Окно иерархии вызовов (Visual Basic, C#, C++)

В окне иерархии вызовов показано, где вызывается заданный метод или свойство. В нем также перечислены методы, вызываемые из этого метода. Вы можете просмотреть несколько уровней графа вызовов, в котором показаны связи вызывающего вызывающего объекта между методами в указанной области.

Окно иерархии вызовов можно отобразить, выбрав метод (или свойство или конструктор) в редакторе, а затем выбрав представление иерархии вызовов в контекстном меню. Отображение должно выглядеть следующим образом:

Окно иерархии вызовов в Visual Studio

С помощью раскрывающегося списка на панели инструментов можно указать область иерархии: решение, текущий проект или текущий документ.

На главной панели отображаются вызовы к методу и из нее, а в области "Сайты вызовов " отображается расположение выбранного вызова. Для элементов, которые являются виртуальными или абстрактными, отображается узел имени метода Переопределения . Для членов интерфейса появится узел имени метода Implements .

Окно иерархии вызовов не находит ссылки на группы методов, в том числе места, где метод добавляется в качестве обработчика событий или назначается делегату. Чтобы найти эти ссылки, используйте команду "Найти все ссылки ".

Контекстное меню в окне иерархии вызовов содержит следующие команды:

Имя Description
Добавление в качестве нового корневого каталога Добавляет выбранный узел в качестве нового корневого узла.
Удаление корневого каталога Удаляет выбранный корневой узел из области представления дерева.
Перейти к определению Переходит к исходному определению метода.
Поиск всех ссылок Находит в проекте все ссылки на выбранный метод.
Copy Копирует выбранный узел (но не его дочерние).
Обновить Обновляет сведения.

Обозреватель объектов

В окне браузера объектов отображаются описания кода в проектах.

Вы можете отфильтровать компоненты, которые нужно просмотреть, с помощью раскрывающегося списка в верхней части окна. Пользовательские компоненты могут включать исполняемые файлы управляемого кода, сборки библиотек, библиотеки типов и файлы ocx . Невозможно добавить пользовательские компоненты C++ .

Пользовательские параметры сохраняются в каталоге пользовательских приложений Visual Studio ,%APPDATA%\Microsoft\VisualStudio\16.0\ObjBrowEX.dat.

В левой области браузера объектов отображаются сборки. Вы можете развернуть сборки для отображения пространств имен, содержащихся в них, а затем развернуть пространства имен, чтобы отобразить типы, которые они содержат. При выборе типа его члены (например, свойства и методы) отображаются в правой области. В правой нижней области отображаются подробные сведения о выбранном элементе.

Вы можете найти определенный элемент с помощью поля поиска в верхней части окна. Поиск не учитывает регистр. Результаты поиска отображаются на левой панели. Чтобы очистить поиск, нажмите кнопку "Очистить поиск ( X) рядом с полем поиска .

Обозреватель объектов отслеживает выбранные вами выбранные элементы, и вы можете перемещаться между выбранными элементами с помощью кнопок "Вперед" и "Назад" на панели инструментов.

С помощью обозревателя объектов можно добавить ссылку на сборку в открытое решение, выбрав элемент (сборку, пространство имен, тип или член) и нажав кнопку "Добавить ссылку" на панели инструментов.

Параметры браузера объектов

С помощью кнопки "Параметры браузера объектов " на панели инструментов можно указать одно из следующих представлений:

Имя Description
Просмотр пространств имен Отображает пространства имен, а не физические контейнеры в левой области. Пространства имен, хранящиеся в нескольких физических контейнерах, объединяются.
Просмотр контейнеров Отображает физические контейнеры, а не пространства имен в левой области. Просмотр пространств имен и контейнеров представления являются взаимоисключающими параметрами.
Показать базовые типы Отображает базовые типы.
Показать скрытые типы и элементы Отображает скрытые типы и элементы (не предназначенные для использования клиентами) в светло-сером тексте.
Показать общедоступные члены Отображает общедоступные члены.
Показать защищенные элементы Отображает защищенные элементы.
Показать закрытые члены Отображает закрытые члены.
Показать другие члены Отображает другие типы элементов, включая внутренние (или другая) элементы в Visual Basic.
Показать унаследованные элементы Отображает унаследованные элементы.
Показать методы расширения Отображает методы расширения.

Команды контекстного меню обозревателя объектов

Контекстное меню (или щелкните правой кнопкой мыши) в обозревателе объектов может содержать следующие команды в зависимости от выбранного типа элемента:

Имя Description
Обзор определения Отображает основной узел для выбранного элемента.
Поиск всех ссылок Находит выбранный элемент объекта и отображает результаты в окне поиска результатов .
Фильтрация по типу Отображает только выбранный тип или пространство имен. Фильтр можно удалить, нажав кнопку "Очистить поиск ".
Copy Копирует полное имя элемента.
Remove Если область является пользовательским набором компонентов, удаляет выбранный компонент из области.
Сортировка по алфавиту Перечисляет типы и члены в алфавитном порядке по имени.
Сортировка по типу объекта Перечисляет типы и элементы в порядке по типу (таким образом, классы предшествуют интерфейсам, интерфейсам предшествуют делегатам и методам перед свойствами).
Сортировка по доступу к объектам Перечисляет типы и члены в порядке по типу доступа, например общедоступному или частному.
Группировка по типу объекта Сортирует типы и элементы в группы по типу объекта.
Перейти к объявлению (только проекты C++) Отображает объявление типа или члена в исходном коде, если оно доступно.
перейти к определению Отображает определение типа или члена в исходном коде, если оно доступно.
Перейти к ссылке Отображает ссылку на тип или элемент в исходном коде, если он доступен.
Просмотр иерархии вызовов Отображает выбранный метод в окне иерархии вызовов .

Окно определения кода

В окне определения кода отображается определение выбранного типа C++, C#или Visual Basic или члена в активном проекте. Тип или член можно выбрать в редакторе кода или в окне представления кода.

Хотя это окно доступно только для чтения, в нем можно задать точки останова или закладки. Чтобы изменить отображаемое определение, выберите "Изменить определение " в контекстном меню. Откроется исходный файл в редакторе кода и перемещается точка вставки в строку, в которой начинается определение.

Контекстное меню определения кода

Контекстное меню (или щелкните правой кнопкой мыши) в окне определения кода может содержать следующие команды:

Имя Description
Быстрые действия и рефакторинг
Rename
Создание графа включения файлов
Просмотр определения
перейти к определению Находит определение (или определения для частичных классов) и отображает их в окне "Результаты поиска ".
Перейти к объявлению
Поиск всех ссылок Находит ссылки на тип или элемент в решении.
Просмотр иерархии вызовов Отображает метод в окне иерархии вызовов .
Переключение заголовка или файла кода
Выполнение тестов Если в проекте есть модульные тесты, выполняет тесты для выбранного кода.
Отладка тестов
Точка останова Вставляет точку останова (или точку трассировки).
Запуск к курсору Запускает программу в режиме отладки в расположении курсора.
Фрагмент кода
Вырезать, копировать, вставлять
Annotation
Создание плана Стандартные команды для структурирования.
Повторное сканирование
Изменение определения Перемещает точку вставки в определение в окне кода.
Выбор кодировки Открывает окно кодирования , чтобы можно было задать кодировку для файла.

Окно структуры документа

Окно структуры документа можно использовать в сочетании с представлениями конструктора, такими как конструктор страницы XAML или конструктор Форм Windows, а также HTML-страницы. В этом окне отображаются элементы в виде дерева, чтобы просмотреть логическую структуру формы или страницы и найти элементы управления, которые глубоко внедрены или скрыты.