Как посмотреть иерархию классов visual studio
в Visual Studio, как показать все классы, унаследованные от базового класса?
похоже, если вы просто "знаете", что View и Json действует ActionResult типы, нет никакого способа, вы можете легко найти эту информацию.
пожалуйста, докажите мне неправильный.
есть ли что-то в браузере объектов, что делает это легко узнать?
Я даже готов к предложениям инструментов за пределами Visual Studio, чтобы узнать эту информацию о различных классах. Например: есть ли что-то в Resharper, что поможет мне?
конечно, для ReSharper можете сделать это. И многое другое.
просто щелкните правой кнопкой мыши на имени типа в любом месте и выберите "Перейти к наследнику" в контекстном меню. "Перейти к наследнику"также можно применить к методу для перехода к переопределениям и реализациям метода интерфейса. Для интерфейса вы можете снова вызвать "Find Usages Advanced", просто щелкните правой кнопкой мыши), где найти все расширения и реализации. Для типов, производных от типа. И моя любимая особенность-нажмите с удержанием Управление любым типом / методом для перехода к его объявлению.
в Resharper 9.2, на любом типе в исходном коде, rt-нажмите "Найти расширенное использование", выберите Find=" производный"и область="решения и библиотеки".
Например, чтобы найти всех наследников (как в библиотеке, так и в коде) некоторого базового класса в включенной DLL от любого поставщика, объявите переменную в коде с этим базовым классом. Затем щелкните правой кнопкой мыши имя базового класса, которое вы только что ввели.
- перейдите к файлу в обозревателе решений
- Раскройте и выберите свой класс
- щелкните правой кнопкой мыши элемент класса (не элемент файла) -> производные типы
вам не обязательно нужен отражатель для этого-представление "диаграмма классов" Visual Studio позволит вам легко найти все производные классы для определенного класса. Щелкните правой кнопкой мыши на классе В "Class View "и выберите"View Class Diagram". Если диаграмма не показывает уровень детализации, который вы хотите для иерархии, щелкните правой кнопкой мыши на поле для класса на диаграмме и выберите "Показать производные классы".
к сожалению, я не уверен, какие именно версии Visual Studio имеют его.
Это наименее ленивый ответ (я просто горжусь такой ответ :)
У меня нет ReSharper, пробовал его раньше, но не хотел его покупать. Я попробовал диаграмму классов, но это не практично, потому что диаграмма иерархии охватывает мир 3 раза, а экран моего ноутбука не имеет бесконечной ширины. Поэтому моим естественным и простым решением было написать код Windows Forms для итерации по типам в сборке и использовать отражение для добавления узлов в древовидное представление, как следует:
пожалуйста, предположим, что у вас есть текстовое поле, вид дерева и другие вещи, необходимые в форме, в которой этот код работает
//go through all the types and add them to a tree node or add a tree node or more to them as they might be parents or children of a class. if neither just add them to the dictionary so that they be checked in the next iterations for being a parent a child or just remain a root level node.
Jetbrains-это компания, которая делает Resharper.
шаги для поиска производных классов:
- запуск dotPeek
- выберите " Открыть из GAC. - и добавьте систему.Сеть.В MVC собрание
- выберите "навигация / перейти к типу" и введите ActionResult
- на ActionResult объявление класса, щелкните правой кнопкой мыши и выберите "производные символы"
- вуаля! Каждый производный класс показан (даже несколько, о которых я не знал!)
Если у вас есть для ReSharper установлен: с курсором на класс / интерфейс, щелкните правой кнопкой мыши-проверить-иерархии
Это показывает, подклассы, реализации и суперклассов.
начиная с "Visual Studio 2015 Update 1", Вы можете просто щелкнуть правой кнопкой мыши по имени класса в редакторе кода класса, а затем выбрать "перейти к реализации" в контекстном меню : Ctrl + F12 является ярлыком.
для классов Framework я использую библиотеку MSDN. Раздел иерархии наследования идет в обоих направлениях. По общему признанию, это не очень помогает для некоторых библиотек 3D-вечеринок.
вы также можете использовать отражатель.
Загрузите все сборки, которые требуется просмотреть, перейдите к типу и разверните элемент производные типы.
с помощью ReSharper (версия 2016.1.2) просто Ctrl + Alt + клик в базовом классе. Вы увидите что-то вроде этого:
перетащите класс или пространство имен из Обозреватель Объектов to Digram Класс.
в представлении класса Visual Studio перейдите к интересующему вас классу и найдите его базовый и производный классы
выберите тип и щелкните правой кнопкой мыши, чтобы увидеть что -то- - - показать на карте кода-Опция выберите его сгенерировать формат изображения для тех, кто наследует этот тип как очень хорошее изображение .формат файла dgml дает гораздо больше информации о типе
Для Visual Studio 2012 (Без ReSharper)
- в обозревателе решений щелкните правой кнопкой мыши класс (производные классы которого вы хотите увидеть).
- на диаграмме классов щелкните правой кнопкой мыши класс и выберите "Показать производные классы".
в качестве опции для тех, кто использует Visual Assist, вы также можете нажать Shift + ALT + G (в то время как курсор находится на имени класса), чтобы вызвать контекстное меню "Goto Related", и если есть производные классы, вы получите подменю для этого, которое перечисляет их все и даже показывает структуры наследования среди этих производных классов.
очень простой способ сделать это-найти : Classname в окне "найти и заменить" (CTRL + F) и используйте опцию "Найти параметры/сопоставить все слово". Вы найдете только унаследованные классы.
Вы также можете просматривать типы и элементы в проекте, искать символы, просматривать иерархию вызовов метода, искать ссылки на символы и выполнять другие действия, не переключаясь между несколькими окнами инструментов, с помощью обозревателя решений.
Работая в редакторе Visual Studio Enterprise, вы с помощью карт кода можете визуализировать структуру кода и его зависимости по всему решению. Дополнительные сведения см. в статье Сопоставление зависимостей с картами кода.
Окно Представление классов отображается в интерфейсе обозревателя решений, а также как отдельное окно. В окне Представление классов отображаются элементы приложения. В верхней области отображаются пространства имен, типы, интерфейсы, перечисления и классы, а в нижней области — элементы, которые относятся к типу, выбранному в верхней области. Используя это окно, можно переместиться к определениям элементов в исходном коде (или в обозревателе объектов, если элемент определен вне решения).
Чтобы просмотреть элементы проекта в окне Представление классов, его необязательно компилировать. Окно обновляется при изменении кода в проекте.
Добавить код в проект можно, выбрав узел проекта и нажав кнопку Добавить. При этом откроется диалоговое окно Добавление нового элемента. Код добавляется в отдельном файле.
Если проект возвращен в систему управления версиями, рядом с каждым элементом в окне Представление классов отображается значок, указывающий состояние файла исходного кода. Общие команды управления исходным кодом, такие как Извлечь, Вернуть и Получить последнюю версию, также доступны в контекстном меню элемента.
Панель инструментов представления классов
Ниже приведены команды панели инструментов окна Представление классов.
Параметры представления классов
Ниже приведены параметры, которые позволяют выбрать кнопку панели инструментов Окно классов: параметры.
name | Описание |
---|---|
Показать базовые типы | Отображаются базовые типы. |
Показать ссылки проектов | Отображаются ссылки проектов. |
Показать скрытые типы и члены | Скрытые типы и члены (не предназначенные для использования клиентами) выделяются светло-серым цветом. |
Показать открытые члены | Отображаются открытые члены. |
Показать защищенные члены | Отображаются защищенные члены. |
Показать закрытые члены | Отображаются закрытые члены. |
Показать прочие члены | Отображаются другие виды членов, включая внутренние (или Friend в Visual Basic). |
Показать унаследованные члены | Отображаются унаследованные члены. |
Контекстное меню представления классов
Контекстное меню в окне Представление классов может содержать приведенные ниже команды в зависимости от выбранного типа проекта.
name | Описание |
---|---|
Перейти к определению | Поиск определения элемента в исходном коде или в обозревателе объектов, если элемент не определен в открытом проекте. |
Найти определение | Отображение выбранного элемента в обозревателе объектов. |
Найти все ссылки | Поиск элемента выбранного объекта и отображение результатов в окне Результаты поиска |
Фильтровать по типу (только управляемый код) | Отображение только выбранного типа или пространства имен. Фильтр можно удалить, нажав кнопку Очистить поиск (X) рядом с полем Найти. |
Копировать | Копирование полного имени элемента. |
Сортировать по алфавиту | Сортировка имен типов и членов в алфавитном порядке. |
Сортировать по типу члена | Сортировка списков типов и членов по типу (таким образом, классы предшествуют интерфейсам, интерфейсы предшествуют делегатам, а методы предшествуют свойствам). |
Сортировать по доступу к члену | Сортировка типов и членов по типу доступа (открытый или закрытый). |
Группировать по типу члена | Объединение типов и членов в группы с сортировкой по типу объекта. |
Перейти к объявлению (только для кода C++) | Отображение объявления типа или члена в исходном коде, если оно есть. |
Перейти к определению | Отображение определения типа или члена в исходном коде, если оно есть. |
Перейти по ссылке | Отображение ссылки на тип или член в исходном коде, если она есть. |
Просмотр иерархии вызовов | Отображение выбранного метода в окне Иерархия вызовов |
В окне Иерархия вызовов можно просмотреть, где вызывался определенный метод или свойство. В нем также приведен список методов, вызванных из других методов. Ви можете просмотреть несколько уровней графа вызовов, в котором показаны отношения между вызывающими и вызываемыми методами в заданной области.
Чтобы открыть окно Иерархия вызовов, выберите метод (свойство или конструктор) в редакторе, а затем в контекстном меню выберите Просмотреть иерархию вызовов. Это окно должно выглядеть примерно следующим образом:
С помощью раскрывающегося списка на панели инструментов можно указать область иерархии: решение, текущий проект или текущий документ.
В основной области отображаются вызовы самого метода и вызовы из него, а на панели Вызвать сайты отображается расположение выбранного вызова. Для членов, которые являются виртуальными или абстрактными, появляется узел Переопределяет имя метода. Для членов интерфейса появляется узел Реализует имя метода.
Окно Иерархия вызовов не обнаруживает ссылки на группы методов, включая места, где метод добавлен в качестве обработчика событий или назначен делегату. Чтобы найти эти ссылки, используйте команду Найти все ссылки.
Контекстное меню в окне Иерархия вызовов содержит приведенные ниже команды.
name | Описание |
---|---|
Добавить как новый корневой элемент | Добавление выбранного узла в качестве нового корневого узла. |
Удалить корневой элемент | Удаление выбранного корневого узла из области представления в виде дерева. |
Перейти к определению | Переход к исходному определению метода. |
Найти все ссылки | Поиск всех ссылок на выбранный метод в проекте. |
Копировать | Копирование выбранного узла (кроме дочерних узлов). |
Обновление | Обновление данные. |
Обозреватель объектов
В окне Обозреватель объектов отображаются описания кода в проектах.
Вы можете отфильтровать компоненты, которые нужно просмотреть, с помощью раскрывающегося списка в верхней части окна. К пользовательским компонентам относятся исполняемые файлы управляемого кода, сборки библиотек, библиотеки типов и OCX-файлы. Пользовательские компоненты C++ добавить нельзя.
Пользовательские параметры сохраняются в каталоге приложения пользователя Visual Studio — %APPDATA%\Microsoft\VisualStudio\15.0\ObjBrowEX.dat.
Пользовательские параметры сохраняются в каталоге приложения пользователя Visual Studio — %APPDATA%\Microsoft\VisualStudio\16.0\ObjBrowEX.dat.
Слева в окне Обозреватель объектов отображаются сборки. Вы можете развернуть сборки, чтобы просмотреть содержащиеся в них пространства имен, которые также можно развернуть для просмотра содержащихся в них типов. При выборе типа его члены (например, свойства и методы) отображаются на правой панели. На нижней правой панели отображаются подробные сведения о выбранном элементе.
Найти конкретный элемент можно с помощью поля Поиск, расположенного в верхней части окна. Регистр букв при поиске не учитывается. Результаты поиска отображаются на левой панели. Чтобы очистить условия поиска, нажмите кнопку Очистить поиск (Х), расположенную рядом с полем Поиск.
Вы можете использовать обозреватель объектов для добавления ссылки на сборку в открытое решение. Для этого выберите элемент (сборку, пространство имен, тип или член) и нажмите кнопку Добавить ссылку на панели инструментов.
Параметры обозревателя объектов
С помощью кнопки Параметры обозревателя объектов на панели инструментов можно выбрать одно из приведенных ниже представлений.
name | Описание |
---|---|
Просмотр пространств имен | Отображение пространств имен вместо физических контейнеров на левой панели. Пространства имен, хранящиеся в различных физических контейнерах, объединяются. |
Просмотр контейнеров | Отображение физических контейнеров вместо пространств имен на левой панели. Представления Просмотр пространств имен и Просмотр контейнеров являются взаимоисключающими. |
Показать базовые типы | Отображение базовых типов |
Показать скрытые типы и члены | Выделение скрытых типов и членов (не предназначенных для использования клиентами) светло-серым цветом. |
Показать открытые члены | Отображение открытых членов. |
Показать защищенные члены | Отображение защищенных членов. |
Показать закрытые члены | Отображение закрытых членов. |
Показать прочие члены | Отображение других типов членов, включая внутренние (или Friend в Visual Basic). |
Показать унаследованные члены | Отображение унаследованных членов. |
Показать методы расширения | Отображение методов расширения. |
Команды контекстного меню обозревателя объектов
Контекстное меню в обозревателе объектов может содержать приведенные ниже команды в зависимости от выбранного типа элемента.
name | Описание |
---|---|
Найти определение | Отображение основного узла выбранного элемента. |
Найти все ссылки | Поиск элемента выбранного объекта и отображение результатов в окне Результаты поиска |
Фильтровать по типу | Отображение только выбранного типа или пространства имен. Фильтр можно удалить, нажав кнопку Очистить поиск. |
Копировать | Копирование полного имени элемента. |
Remove | Если область представляет собой набор пользовательских компонентов, выбранный компонент удаляется из области. |
Сортировать по алфавиту | Сортировка имен типов и членов в алфавитном порядке. |
Сортировать по типу объекта | Сортировка списков типов и членов по типу (таким образом, классы предшествуют интерфейсам, интерфейсы предшествуют делегатам, а методы предшествуют свойствам). |
Сортировать по доступу к объекту | Сортировка типов и членов по типу доступа (открытый или закрытый). |
Группировать по типу объекта | Объединение типов и членов в группы с сортировкой по типу объекта. |
Перейти к объявлению (только проекты C++) | Отображение объявления типа или члена в исходном коде, если оно есть. |
Перейти к определению | Отображение определения типа или члена в исходном коде, если оно есть. |
Перейти по ссылке | Отображение ссылки на тип или член в исходном коде, если она есть. |
Просмотр иерархии вызовов | Отображение выбранного метода в окне Иерархия вызовов |
Окно определения кода (C++)
В окне Определение кода отображается определение выбранного типа C++ или элемента в активном проекте. Тип или член можно выбрать в редакторе кода или в окне просмотра кода.
Это окно доступно только для чтения, но в нем можно установить точки останова и закладки. Чтобы изменить отображаемое определение, выберите в контекстном меню команду Изменить определение. Исходный файл открывается в редакторе кода, а курсор устанавливается на строку, где начинается определение.
Начиная с Visual Studio 2015 окно определения кода может использоваться только с кодом C++.
Контекстное меню окна определения кода
Контекстное меню в окне Определение кода может содержать приведенные ниже команды.
name | Описание |
---|---|
Быстрые действия и рефакторинг | |
Переименование | |
Создать диаграмму включаемых файлов | |
Показать определение | |
Перейти к определению | Поиск определения (или определений в случае разделяемых классов) и отображение их в окне Результаты поиска |
Перейти к объявлению | |
Найти все ссылки | Поиск ссылок на тип или член в решении. |
Просмотр иерархии вызовов | Отображение метода в окне Иерархия вызовов |
Переключение между файлами заголовков и кода | |
Выполнить тесты | Если в проекте есть модульные тесты, выполняются тесты для выбранного кода. |
Запустить отладку тестов | |
Точка останова | Вставка точки останова (или точки трассировки). |
Выполнить до текущей позиции | Выполнение программы в режиме отладки до позиции курсора. |
Фрагмент кода | |
Вырезать, Копировать, Вставить | |
Комментарий | |
Структура | Стандартные команды структурирования. |
Повторить сканирование | |
Изменить определение | Перемещение курсора к определению в окне кода. |
Выбрать кодировку | Открытие окна Кодировка для выбора кодировки файла |
Окно Структура документа
Вы можете использовать окно Структура документа совместно с представлениями конструктора, такими как конструктор для XAML-страницы или конструктор Windows Form, либо совместно с HTML-страницами. В этом окне элементы отображаются в виде дерева, благодаря чему можно просматривать логическую структуру формы или страницы и отыскивать элементы управления, скрытые или расположенные глубоко в иерархии.
Традиционно моделирование программного обеспечения осуществляется отдельно от кодирования. Как правило, это происходит на этапе проектирования, который заканчивается до начала кодирования. В большей части случаев диаграммы моделирования, построенные на этапе проектирования, быстро устаревают в ходе разработки программного обеспечения и теряют свое значение при неизбежном изменении проекта.
Утилита Class Designer системы Visual Studio позволяет внедрить моделирование в интегрированную среду разработки в виде действий, которые можно выполнить в любое время на всем протяжении разработки проекта. Диаграммы классов динамически конструируются по исходному коду, т.е. они никогда не устаревают. Любые изменения, внесенные в исходном коде, немедленно отражаются на диаграмме классов, а любое изменение диаграммы классов отражается в коде.
Создание диаграммы классов
Процесс проектирования приложения обычно подразумевает как минимум наличие схемы классов, которые будут созданы, и описание их взаимодействия. Среда Visual Studio 2013 имеет область проектирования Class Designer, в которой можно формировать диаграмму классов. Затем в классы можно добавлять поля, свойства и методы, а также устанавливать взаимоотношения между ними.
Несмотря на то что этот объект называется диаграммой классов, он поддерживает классы, структуры, перечисления, интерфейсы, абстрактные классы и делегаты. Существует несколько способов, с помощью которых разработчик может добавлять диаграмму классов в свой проект. Например, он может открыть диалоговое окно Add New Item, чтобы создать новую пустую диаграмму классов в проекте:
Новую диаграмму классов можно добавить в проект, щелкнув на кнопке View Class Diagram инструментальной панели в окне Solution Explorer или щелкнув правой кнопкой мыши на проекте или классе, а затем выбрав команду View Class Diagram в контекстном меню. Если при этом проект был выделен, то система Visual Studio автоматически добавит все типы, определенные в проекте, в начальную диаграмму классов. Хотя в некоторых случаях это может оказаться удобным, для проекта, содержащего большое количество классов, процесс создания и уточнения такой диаграммы может оказаться слишком долгим.
В отличие от некоторых программных средств, требующих, чтобы все типы, существующие в проекте, принадлежали одной и той же диаграмме классов, в системе Visual Studio диаграмма классов может содержать сколько угодно пользовательских классов. Это позволяет добавлять в одно решение несколько диаграмм классов.
Область действия утилиты Class Designer ограничена одним проектом. Например, нельзя добавлять в диаграмму классов типы, определенные в разных проектах, даже если они являются частями одного и того же решения.
Надстройку Class Designer можно разделить на четыре компонента: область проектирования (design surface), инструментальная панель Toolbox, окно Class Details, сетка свойств. Изменения диаграммы классов сохраняются в файле с расширением *.cd, который в сочетании с исходными файлами используется для генерации схемы, демонстрируемой в области проектирования Class Designer.
Область проектирования диаграммы классов
Область проектирования надстройки Class Designer позволяет разработчику взаимодействовать с типами, используя перетаскивание компонентов. Разработчик может добавлять в область проектирования существующие типы, перетаскивая их из любого представления классов или окна Solution Explorer. Если файл, связанный с окном Solution Explorer, содержит несколько типов, то все они добавляются в область проектирования.
На рисунке ниже показана простая диаграмма классов, содержащая два класса: Customer и Order, а также перечисление OrderStatus. Каждый класс содержит поля, свойства, методы и события. Между классами существует ассоциация, поскольку класс Customer содержит свойство Orders, представляющее собой список объектов типа Order, а класс Order реализует интерфейс IDataErrorInfo. Вся эта информация содержится на диаграмме классов.
Каждый класс на диаграмме классов изображается как отдельная сущность, которую можно перетаскивать по области проектирования и при необходимости изменять размеры. Класс состоит из полей, свойств, методов и событий. На рисунке выше эти компоненты сгруппированы в разделы. Разработчик может изменять шаблон для диаграмм классов, например, перечислять компоненты в алфавитном порядке или группировать их по уровню доступа.
Надстройка Class Designer часто используется для просмотра многочисленных классов, чтобы было понятно, как они связаны друг с другом. В таком случае удобно скрывать компоненты классов, чтобы упростить диаграмму. Для того чтобы скрыть все компоненты одновременно, можно использовать переключатель, расположенный в правом верхнем углу представления класса в области проектирования. Если необходимо скрыть не все, а лишь некоторые компоненты, то их можно скрывать по отдельности или по разделам, щелкая правой кнопкой мыши на соответствующем элементе и выбирая в контекстном меню команду Hide.
Инструментальная панель Toolbox
Для того чтобы облегчить добавление элементов на диаграмму классов, в инструментальной панели Toolbox есть корешок закладки Class Designer. Чтобы создать элемент, следует перетащить его из инструментальной панели Toolbox в область проектирования и дважды щелкнуть на нем. На рисунке ниже показана инструментальная панель Toolbox с видимой закладкой Class Designer. Элементы на панели Toolbox можно разделить на сущности (entities) или соединители (connectors). Обратите внимание на то, что элемент Comment можно добавить на закладку Class Designer, но он не появляется ни в одной части кода, а просто добавляется в документацию о диаграмме классов.
Сущности (entities)
Для того чтобы удалить сущности из диаграммы, надо щелкнуть на них правой кнопкой мыши и выбрать в контекстном меню команду Remove From Diagram. В этом случае они не удаляются из исходного кода, а исчезают из диаграммы классов. Если разработчик все же хочет удалить связанный с сущностью исходный код, следует выбрать команду Delete Code.
Для того чтобы увидеть код, связанный с сущностью, следует дважды щелкнуть на сущности или выбрать команду View Code в контекстном меню, которое открывается после щелчка правой кнопкой мыши. Сущности, включенные в инструментальную панель Toolbox, описаны ниже.
Class (класс)
Поля, свойства, методы, события и константы можно добавлять в класс с помощью контекстного меню, открывающегося после щелчка правой кнопкой мыши или с помощью окна Class Details. Несмотря на то что класс может поддерживать вложенные типы, они не могут добавляться в область проектирования. Классы могут также реализовывать интерфейсы. Например, на рисунке выше класс Order реализует интерфейс IDataErrorInfo.
Enum (перечисление)
Может содержать только список членов с присвоенными им значениями. Каждый метод имеет резюме и комментарии, но они появляются только в виде XML-комментария, расположенного напротив метода.
Interface (интерфейс)
Интерфейсы определяют свойства, методы и события, которые должен реализовать класс. Интерфейсы могут также содержать вложенные типы, но напомним, что добавление вложенных типов не поддерживается утилитой Class Designer.
Abstract Class (абстрактный класс)
Struct (структура)
Это единственная сущность, кроме перечислений, которая появляется в области проектирования в прямоугольнике. Аналогично классу, структура имеет поля, свойства, методы, события и константы. Кроме того, она тоже может содержать вложенные типы. Тем не менее в отличие от класса структура не имеет деструктора.
Delegate (делегат)
Несмотря на то что делегат появляется на диаграмме классов как сущность, он не может содержать вложенные типы. Он может содержать только параметры, определяющие его сигнатуру.
Соединители (connectors)
Между сущностями могут быть установлены отношения двух типов. Они иллюстрируются на диаграмме классов с помощью соединителей, описанных ниже:
Inheritance (Наследование)
Соединитель Inheritance используется для того, чтобы показать отношение между классами, наследующими свойства друг друга.
Association (Ассоциация)
Если класс содержит ссылку на другой класс, то между ними существует ассоциация. Она демонстрируется с помощью соединителя Association. Если отношение основано на коллекции, - например, на списке объектов типа Order, - его можно представить с помощью ассоциации коллекции (collection association). Ассоциация коллекции Orders показана на рисунке выше в виде соединителя, связывающего классы Customer и Order.
Ассоциацию классов (class association) можно представить либо в виде поля или свойства класса, либо в виде ассоциативной связи между классами. Для этого можно использовать контекстное меню, открывающееся после щелчка правой кнопкой мыши на поле, свойстве или линии связи между классами.
Для того чтобы показать свойство как ассоциацию коллекции, необходимо щелкнуть правой кнопкой мыши на классе и выбрать команду Show as Collection Association. В результате свойство будет скрыто в классе и показано в виде соединителя с ассоциированным классом на диаграмме.
Чтобы им воспользоваться вам необходимо выделить проект нажать правую кнопку мыши, далее выбрать Представление и > Перейти к диаграмме классов.
В последних версия VS переименовали компонент, потому многие его не могу найти, для этого я дополню статью.
Откроется окно Visual Studio Installer
Далее вам не обходимо перейти на вкладку Отдельный компоненты.
И в поле поиска вписать слово конструктор.
От фильтруется список и вы увидите компонент Конструктор классов нужно установить галочку на компоненте. И нажать в правом углу кнопку изменить.
Произойдет загрузка компонента и у вас вновь откроется студия по завершению.
Далее вам необходимо выбрать правой кнопкой мыши по проекту и перейти в пункт Представление >>Перейти к диаграмме классов. У вас загрузится конструктор как на скриншоте.
Разработчики должны иметь возможность легко искать, ориентироваться и понимать код, в котором работают. Мы изучили юзабилити и пришли к выводу, что разработчик проводит много времени читая, пересматривая и исследуя существующий код, вместо написания нового кода.
Поддержка “Navigate To”
Очень важно для маленьких или больших проектов иметь возможность быстро искать и перемещаться по коду.
Visual Studio 2010 теперь поддерживает новое горячее сочетание клавиш (Ctrl+запятая), при нажатии на которое открывается новое окно “Navigate To”, которое позволяет быстро находить типы, файлы, переменные и члены в вашем проекте и перемещаться к их объявлению.
Благодаря выдачи результатов по ходу ввода запроса, “Navigate To” дает прирост в поиске через UI:
Наберите еще несколько букв, и вы увидите автоматически отфильтрованный список, который соответствует запросу “controller”:
Вы можете использовать полосу прокрутки для перемещения по результату поиска или использовать альтернативу — нажимать Tab и далее пользоваться стрелочками, если не хотите отрывать руки от клавиатуры. Список “Navigate To” включает в себя все типы результатов, которые соответствуют поисковому запросу, включая имена типов, методов, свойств, файлов и объявление полей
Выбор любого результата со списка, откроет нужный исходный файл в VS 2010 (если он еще не открыт) и перекинет вас в нужное место кода, подсвечивая релевантное имя.
Нечеткие возможности поиска
Поле поиска в “Navigate To” умеет делать хитрые вещи, оно позволяет смекалисто отфильтровывать и искать, не зная толком имени вещи, которую вы ищите. Это позволяет фильтровать ваши поиски и получать информацию в реальном времени, во время набора.
Чтобы опробовать данную возможность, давайте сначала будем искать слово “cache”. Обратите внимание, результат включает в себя не только элементы, которые начинаются со слова “cache”, но и любые элементы, которые содержат слово “cache”:
Мы можем добавлять несколько слов в поле поиска для дальнейшего отфильтровывания результатов. Например, ниже, я отфильтровываю список по элементам, которые содержат оба слова “cache” и “action” в имени:
Например, написав “AMS” вы увидите результат ниже (только те типы и члены, которые содержат слова, которые начинаются с А, затем с M, потом с S):
Окно “Navigate To” позволяет вам быстро фильтровать и перемещаться по коду, используя минимум нажатий и избавляет вас от использования мышки, открытия Solution Explorer и нажатия непосредственно на файл.
View Call Hierarchy
Конечно иметь возможность быстрой навигации и поиска по коду — это замечательно, но иметь возможность просматривать, как используется код — это ведь еще лучше! VS 2010 представляет новую возможность — “View Call Hierarchy”, которая позволяет быстро обнаружить места в коде, с которых вызываются ваши методы или свойства и передвигаться по дереву вызовов, не запуская или отлаживая, при этом, приложение.
Для использования данной возможности, просто выделите имя метода или свойства в коде, нажмите Ctrl+K, Ctrl+T или правой кнопкой и выберите “View Call Hierarchy” с контекстного меню:
Это откроет новое окно инструмента “Call Hierarchy”, которое по умолчанию появляется под редактором кода. Ниже, вы можете увидеть, как “Call Hierarchy” отображает два метода в нашем проекте, которые вызывают метод ViewPage.RenderView(), выделенный выше.
Далее мы можем углубляться иерархию первого метода “RenderViewAndRestoreContentType”, чтобы увидеть очередь вызова:
Для виртуальных методов/свойств вы можете также можете вызывать окно иерархии, чтобы увидеть, что показывает подкласс и перегрузить их.
Двойное нажатие на любом члене в окне “Call Hierarchy” откроет соответствующий исходный файл и переместит в нужное место в коде.
Это позволит вам быстро перемещаться по коду и лучше понимать отношения между классами и методами во время работы.
Highlighted References
D VS 2010, когда вы выделяете или подсвечиваете переменные / параметры / объявление поля в редакторе кода, все места с ними автоматически подсвечиваются для вас в редакторе. Это позволяет легко определить, где и как переменная или параметр используется.
Например, когда мы выделяем в редакторе параметр “controllerContext”, передаваемый в метод ControllerActionInvoker.GetParameterValue() ниже, его четыре места использования в данном методе также подсвечиваются:
Если я выделю локальную переменную в методе, все места ее использования также автоматически подсветятся:
Если подсвечено несколько мест использования, вы можете перемещаться по ним, используя Ctrl-Shift- ↑ и Ctrl-Shift-↓
Читайте также: