Что такое конструктор классов?
С помощью средства конструктора классов в Visual Studio можно создавать, визуализировать и рефакторинг-схемы классов в проектах C#, Visual Basic или C++ . Схемы классов показывают элементы кода и их связи в области визуального конструктора, которые помогут лучше понять структуру проекта и реорганизовать код.
Заметка
Конструктор классов недоступен в проектах .NET Core и .NET 5 и более поздних версий.
Сведения о схемах классов
Вот что можно сделать с схемами классов, более подробно:
Проектирование: измените код проекта, редактируя диаграмму классов. Добавьте новые элементы и удалите нежелательные элементы. Изменения отражаются в коде.
Визуализируйте: Поймите структуру вашего проекта, отображая классы проекта на схеме. Настройте схему, чтобы сосредоточиться на подробных сведениях о проекте. Сохраните схему, чтобы использовать ее позже для демонстрации или документации.
рефакторинг: переопределение методов, переименование идентификаторов, параметров рефакторинга и реализация интерфейсов и абстрактных классов.
Просмотр типов и связей
Схемы классов показывают сведения о типах, например их составляющих элементах и отношениях между ними. Визуализация этих сущностей — это динамическое представление в коде. Это означает, что вы можете редактировать типы в конструкторе, а затем просматривать изменения, отраженные в исходном коде сущности. Аналогичным образом схема классов синхронизирована с изменениями, внесенными в файлы кода.
Заметка
Если проект содержит схему классов и проект ссылается на тип, расположенный в другом проекте, схема классов не отображает указанный тип, пока проект не будет построен для этого типа. Аналогичным образом схема не отображает изменения в коде внешней сущности, пока не перестроите проект для этой сущности.
Процесс работы с диаграммой классов
Схемы классов помогают понять структуру классов проектов. Эти проекты, возможно, были созданы другими разработчиками, или вам просто потребуется обновить проект, созданный самостоятельно. Схемы классов можно использовать для настройки, совместного использования и представления сведений о проекте с другими пользователями.
Первым шагом в представлении сведений о проекте является создание схемы классов, отображающей то, что нужно отобразить. Дополнительные сведения см. в статье Добавить диаграмму классов. Можно создать несколько схем классов для проекта, который можно использовать для отображения отдельного представления проекта, выбранного подмножества типов проекта или выбранного подмножества элементов типов.
Помимо определения того, что отображается на каждой схеме классов, можно также изменить способ представления информации; Дополнительные сведения см. в разделе Настройка схем классов.
После точной настройки одной или нескольких схем классов их можно скопировать в документы Microsoft Office и распечатать их или экспортировать в виде файлов изображений. Дополнительные сведения см. в статье Копирование элементов схемы классов в документ Microsoft Office, Печать схем классов и Экспорт схем классов в виде изображений.
Заметка
Конструктор классов не отслеживает расположение исходных файлов, поэтому изменение структуры проекта или перемещение исходных файлов в проекте может привести к тому, что Конструктор классов потеряет ориентацию в типах, особенно в исходных типах typedef, базовых классах или типах ассоциаций. Может возникнуть ошибка, например конструктор классов не может отобразить этот тип. Если это сделать, перетащите измененный или перемещенный исходный код на схему классов снова, чтобы повторно воспроизвести его.
Добавление схем классов в проекты
Чтобы разработать, изменить и рефакторировать классы и другие типы, добавьте схему классов в ваш проект на C#, Visual Basic или C++. Чтобы визуализировать различные части кода в проекте, добавьте в проект несколько схем классов.
Вы не можете создавать схемы классов из проектов, которые совместно используют код для нескольких приложений. Сведения о создании схем классов UML см. в статье Создание проектов и схем моделирования UML.
Установка компонента конструктора классов
Если вы не установили компонент конструктора классов , выполните следующие действия, чтобы установить его.
Откройте Установщик Visual Studio в меню "Пуск" Windows или выберите Средства>Получить средства и компоненты на панели меню в Visual Studio.
открывается установщик Visual Studio.
Если у вас уже установлена Visual Studio, нажмите кнопку Изменить в меню параметров.
Выберите вкладку Отдельные компоненты, а затем прокрутите вниз до категории Инструменты кода.
Выберите конструктор классов и выберите Изменить.
Компонент конструктора классов начинает установку.
Добавление пустой схемы классов в проект
В обозревателе решенийщелкните правой кнопкой мыши узел проекта и выберите Добавить>новый элемент. Или нажмите клавиши CTRL +SHIFT+A. Если появится небольшое окно только с опцией добавить файл кода, нажмите кнопку Показать все шаблоны.
Появится диалоговое окно добавления нового элемента.
Разверните Общие, а затем выберите диаграмму классов из списка шаблонов. Для проектов Visual C++ просмотрите категорию утилиты, чтобы найти шаблон схемы классов.
Заметка
Если шаблон схемы классов не отображается, выполните действия,, чтобы установить компонент конструктора классов для Visual Studio. Как упоминалось ранее в этой статье, конструктор классов недоступен для .NET Core и .NET 5 и более поздних версий.
Схема классов открывается в конструкторе классов и отображается как файл с расширением .cd в обозревателе решений. Фигуры и линии можно перетащить на схему из панели элементовили перетащить узел проекта из Обозревателя решений, чтобы добавить классы из этого проекта.
Чтобы добавить несколько схем классов, повторите действия, описанные в этой процедуре.
Отображение содержимого полного проекта на схеме классов
Откройте пустую схему классов, а затем перетащите узел проекта из обозревателя решений на поверхность схемы классов. Создается автоматически сгенерированная диаграмма классов.
Важный
Конструктор классов недоступен в проектах .NET Core.
Настройка схем классов
Вы можете изменить то, как диаграммы классов отображают информацию. Вы можете настроить всю схему или отдельные типы на рабочей области конструктора.
Например, можно настроить уровень масштабирования всей схемы классов, изменить группирование и сортировку отдельных элементов типа, скрыть или показать связи, а также переместить отдельные или наборы типов в любое место на схеме.
Заметка
Настройка способа отображения фигур на схеме не изменяет базовый код для типов, представленных на схеме.
Разделы, содержащие элементы типа, такие как раздел свойств в классе, называются секциями. Можно скрывать или отображать отдельные отсеки и элементы типа.
Приближать и отдалять схему классов
Откройте и выберите файл схемы классов в конструкторе классов.
На панели инструментов конструктора классов щелкните кнопку "Увеличить" или кнопку "Уменьшить", чтобы изменить уровень масштабирования области конструктора.
или
Укажите определенное значение масштабирования. Вы можете использовать раскрывающийся список масштабирования или ввести допустимый уровень масштабирования (допустимый диапазон составляет от 10% до 400%).
Заметка
Изменение уровня масштабирования не влияет на масштаб печати схемы классов.
Настройка группирования и сортировки элементов типа
Откройте и выберите файл схемы классов в конструкторе классов.
Щелкните правой кнопкой мыши пустую область на поверхности конструктора и наведите курсор на членов группы.
Выберите один из доступных вариантов:
группировать по типу отделяет отдельные члены типа в группированные списки свойств, методов, событий и полей. Отдельные группы зависят от определения сущностей: например, класс не отображает группу событий, если для этого класса нет событий.
Group by Access отделяет отдельные члены типа в сгруппированные списки на основе модификаторов доступа участника. Например, "Public" и "Private".
Сортировка по алфавиту отображает элементы, составляющие сущность в виде одного алфавитного списка. Список отсортирован по возрастанию.
Скрыть отсеки на типе
Откройте и выберите файл схемы классов в конструктора классов.
Щелкните правой кнопкой мыши категорию членов в том типе, который вы хотите настроить (например, выберите узел Методы в классе).
Щелкните Скрыть отсек.
Выбранный отсек исчезает из контейнера типов.
Скрытие отдельных элементов в типе
Откройте и выберите файл схемы классов в конструкторе классов.
Щелкните правой кнопкой мыши по элементу типа, который вы хотите скрыть.
Щелкните Скрыть.
Выбранный элемент исчезает из контейнера типов.
Отображение скрытых секций и элементов в типе
Откройте и выберите файл схемы классов в конструкторе классов.
Щелкните правой кнопкой мыши по названию типа со скрытым отсеком.
Щелкните Показать все члены.
Все скрытые отсеки и элементы отображаются в контейнере типа.
Скрытие связей
Откройте и выберите файл схемы классов в конструкторе классов.
Щелкните правой кнопкой мыши на линии ассоциации или наследования, которую вы хотите скрыть.
Щелкните Скрыть для строк ассоциации и щелкните Скрыть строки наследования.
Щелкните Показать все члены.
Все скрытые отсеки и элементы отображаются в контейнере типа.
Отображение скрытых связей
Откройте и выберите файл схемы классов в конструкторе классов.
Щелкните правой кнопкой мыши на типе с скрытой связью или наследованием.
Щелкните Показать все члены для линий ассоциации и щелкните Показать базовый класс или Показать производные классы для линий наследования.
Удаление фигуры из схемы классов
Фигуру типа можно удалить из схемы классов, не затрагивая базовый код типа. Удаление фигур типов на схеме классов влияет только на такую схему: базовый код, определяющий тип и другие схемы, отображающие тип, не влияют.
На схеме классов выберите фигуру типа, которую нужно удалить из схемы.
В меню "Изменить" выберите "Удалить из диаграммы".
Фигура типа и любые линии связи или наследования, подключенные к фигуре, больше не отображаются на схеме.
Удалите типовую форму и её базовый код
Щелкните правой кнопкой мыши фигуру на поверхности дизайна.
Выберите Удалить код в контекстном меню.
Фигура удаляется из схемы, а его базовый код удаляется из проекта.
Копирование элементов схемы классов в документ Microsoft Office
Фигуры можно скопировать из схемы классов .NET (CD-файл) в другие документы. Вы получите копию фигуры или его базовый код на основе типа документа, в который вы вставляете его. Сведения о копировании фигур из схем классов UML в проекте моделирования см. в разделе Экспорт схем в виде изображений.
Копирование одного элемента
Щелкните фигуру правой кнопкой мыши и выберите Копировать изображение.
Копирование нескольких элементов
Выберите фигуры на схеме, которую нужно скопировать.
Щелкните правой кнопкой мыши по выделенному фрагменту и выберите Копировать изображение.
Скопируйте все элементы в диаграмме классов
Щелкните правой кнопкой мыши область схемы и выберите выбрать всеили нажмите клавиши CTRL+A.
В меню Редактирование выберите Копировать изображение.
Вы также можете выбрать Копировать вместо Копировать изображение. копирование копирует изображение как обычный растровый образ. Копировать изображение позволяет скопировать изображение в виде векторного изображения, что более подходит для большинства приложений Office.
Экспорт схем классов в виде изображений
Чтобы экспортировать схему классов, созданную из кода в проекте, сохраните схему в виде изображения. Если вы хотите вместо этого экспортировать диаграммы классов UML, см. раздел Экспорт диаграмм в виде изображений.
Экспорт схемы
Откройте файл схемы классов (.cd).
В меню диаграммы классов или контекстном меню области диаграммы выберите пункт Экспорт диаграммы в виде изображения.
Выберите схему.
Выберите нужный формат.
Выберите Экспорт, чтобы завершить экспорт.
Чтобы автоматически обновить экспортированные изображения, связанные с другими документами, снова экспортируйте схему в Visual Studio.
Печать схем классов
Вы можете распечатать схему классов с помощью функции печати Visual Studio.
Печать схемы классов
Откройте схему классов.
Щелкните Печать в меню файла.
Вся диаграмма классов распечатывается. Возможно, потребуется настроить параметры в диалоговом окне настройки страницы , чтобы распечатать соответствующий размер.
Добавление примечаний к схемам классов
Фигуры комментариев можно использовать для анотации схем классов. Фигура комментария имеет одно свойство, text, в которое можно ввести текст. Фигуры комментариев существуют только на поверхности схемы, а не в коде.
Комментарий расположен в представлении диаграммы классов в Конструкторе классов. Если открыть схему второго класса в том же проекте, комментарии, созданные в первом представлении, не отображаются. При удалении схемы все примечания, которые он содержит, также удаляются.
Вы можете изменить размер фигуры комментария, но не можете изменить другие аспекты её внешнего вида, такие как цвет фона, шрифт или размер шрифта.
Добавление комментария
Перетащите комментарий из панели элементов конструктора классов на схему классов.
Щелкните новую фигуру комментария на схеме и введите нужный текст.
Использование сочетаний клавиш и мыши в окне "Схема классов" и "Сведения о классах"
Вы можете использовать клавиатуру помимо мыши (или другого указывающего устройства) для выполнения действий навигации в конструкторе классов и в окне сведений о классе.
Использование мыши в конструкторе классов
В схемах классов поддерживаются следующие действия мыши:
Комбинация мыши | Контекст | Описание |
---|---|---|
Дважды щелкните | Элементы фигуры | Открывает редактор кода. |
Дважды щелкните | Соединитель Lollipop | Развернуть/свернуть леденец. |
Дважды щелкните | Этикетка соединителя Lollipop | Вызывает команду показать интерфейс. |
Колесико мыши | Схема классов | Прокрутите по вертикали. |
Shift + колесико мыши | Схема классов | Прокрутите по горизонтали. |
CTRL + колесико мыши | Схема классов | Увеличить. |
CTRL+SHIFT + щелкните | Схема классов | Увеличить. |
Использование мыши в окне сведений о классе
С помощью мыши можно изменить внешний вид окна сведений о классе и данные, которые отображаются следующим образом:
Щелкнув любую редактируемую ячейку, вы можете изменить содержимое этой ячейки. Изменения отображаются во всех местах, где хранятся или отображаются данные, включая окно свойств и в исходном коде.
Щелкнув любую ячейку строки, окно свойств приводит к отображению свойств элемента, представленного этой строкой.
Чтобы изменить ширину столбца, перетащите границу в правой части заголовка столбца, пока ширина столбца не станет такой, как вам нужно.
Вы можете развернуть или свернуть узлы отсеков или свойств, щелкнув по символам со стрелками слева от строки.
Окно сведений о классе предлагает несколько кнопок для создания новых участников в текущем классе и перехода между отсеками участников в сетке окна сведений о классе .
Использование клавиатуры в конструкторе классов
Следующие действия клавиатуры поддерживаются на схемах классов:
Ключ | Контекст | Описание |
---|---|---|
клавиши со стрелками | Внутри фигур типа | Древовидная навигация по содержимому фигуры (поддерживается обтекание текстом вокруг фигуры). Левые и правые клавиши разворачивают и сворачивают текущий элемент, если его можно развернуть, и, если нет — переходят к родительскому элементу (см. навигацию в древовидном виде для подробной информации). |
клавиши со стрелками | Фигуры верхнего уровня | Перемещение фигур на схеме. |
Shift+клавиши со стрелками | Внутри фигур типа | Создание непрерывного выбора, состоящего из элементов фигуры, элементов, вложенных типов или секций. Эти сочетания клавиш не поддерживают замыкание. |
дом | Внутри фигур типа | Перейдите к заголовку фигур верхнего уровня. |
дом | Фигуры верхнего уровня | Перейдите к первой фигуре на схеме. |
конец | Внутри фигур типа | Перейдите к последнему видимому элементу внутри фигуры. |
конец | Фигуры верхнего уровня | Перейдите к последней фигуре на схеме. |
Shift+Home | Внутри формы шрифта | Выбирает элементы в фигуре, начиная с текущего элемента и заканчивая самым верхним элементом на той же фигуре. |
Шифт+Конец | Внутри формы шрифта | То же, что и Shift+Home, но в направлении сверху вниз. |
ВВОД | Все контексты | Вызывает действие по умолчанию для фигуры, которое также доступно с помощью двойного щелчка мыши. В большинстве случаев это View Code, но некоторые элементы определяют его по-разному (луллипопы, заголовки отделений, метки луллипопов). |
+ и - | Все контексты | Если элемент, находящийся в фокусе, можно развернуть, эти клавиши развернут или свернут его. |
> | Все контексты | В элементах с дочерними элементами этот элемент расширяется, если он свернут и переходит к первому дочернему элементу. |
< | Все контексты | Переходит к родительскому элементу. |
Alt+Shift+L | Внутри фигур типа + в фигурах типов. | Перейдите к lollipop выбранной фигуры, если она присутствует. |
ALT+SHIFT+B | Внутри фигур типа + в фигурах типов. | Если список базовых типов отображается в фигуре типа и содержит несколько элементов, этот параметр переключает состояние расширения списка (свернуть или развернуть). |
Удалить | Формы типов и комментариев | Вызывает команду Remove from Diagram. |
Удалить | На все остальное. | Вызывает команду Delete from Code (члены, параметры, ассоциации, наследование, метки лоллипоп). |
CTRL+Delete | Все контексты | Вызывает команду Delete from Code при выборе. |
вкладка | Все контексты | Переходит к следующему дочернему элементу в пределах одного родительского элемента (поддерживает переключение). |
Shift+Вкладка | Все контексты | Переходит к предыдущему дочернему элементу в одном родительском элементе (поддерживает оболочку). |
пробел | Все контексты | Переключает выделение текущего элемента. |
Использование клавиатуры в окне сведений о классе
Заметка
Следующие ключевые привязки имитируют интерфейс ввода кода.
Используйте следующие клавиши, чтобы управлять окном Подробности о классе.
Ключ | Результат |
---|---|
, (запятая) | Если курсор находится в строке параметров, нажатие запятой перемещает курсор в поле "Имя" следующего параметра. Если курсор находится в последней строке параметра метода, он перемещает курсор в поле <добавления параметра>, которое можно использовать для создания нового параметра. Если курсор находится в другом месте, в окне сведений о классе , ввод запятой буквально добавляет запятую в текущее поле. |
; (точка с запятой) или ) (закрывающая скобка) | Переместите курсор в поле "Имя" следующей строки члена в сетке окна "Сведения о классе" . |
вкладка | Перемещает курсор в следующее поле, сначала перемещается влево вправо, а затем сверху вниз. Если курсор перемещается из поля, в котором введен текст, Подробности класса обрабатывают этот текст и сохраняют его, если он не вызывает ошибку. Если курсор находится в пустом поле, например <добавить параметр>, tab перемещает его в первое поле следующей строки. |
пробел | Перемещает курсор в следующее поле, сначала перемещается влево вправо, а затем сверху вниз. Если курсор находится в пустом поле, например <добавить параметр>, он переходит к первому полю следующей строки. Обратите внимание, что <пробел>, набранный сразу после запятой, игнорируется. Если курсор находится в поле "Сводка", то при вводе пробела добавляется пробел. Если курсор находится в столбце "Скрыть" заданной строки, введите пробел, чтобы переключить значение флажка "Скрыть". |
Ctrl+Tab | Переключитесь в другое окно документа. Например, перейдите с сведений о классе в открытый файл кода. |
Esc | Если вы начали вводить текст в поле, нажатие клавиши ESC действует как клавиша отмены, возвращая содержимое поля к предыдущему состоянию. Если в окне сведений о классе имеется общий фокус, но ни одна конкретная ячейка не находится в фокусе, нажатие клавиши ESC перемещает фокус от окна сведений о классе. |
стрелка вверх и стрелка вниз | Эти клавиши перемещают курсор вертикально по строкам в сетке окна сведений о классе . |
стрелка влево | Если курсор находится в столбце "Имя", нажатие стрелки влево свернет текущий узел в иерархии (если он открыт). |
стрелка вправо | Если курсор находится в столбце "Имя", нажатие на стрелку вправо расширяет текущий узел в иерархии (если он свернут). |
Совет
Полный список сочетаний клавиш см. в сочетания клавиш в Visual Studio.