Диаграммы классов в Visual Studio
Традиционно моделирование программного обеспечения осуществляется отдельно от кодирования. Как правило, это происходит на этапе проектирования, который заканчивается до начала кодирования. В большей части случаев диаграммы моделирования, построенные на этапе проектирования, быстро устаревают в ходе разработки программного обеспечения и теряют свое значение при неизбежном изменении проекта.
Утилита 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)
Сущности, которые можно добавить на диаграмму классов, полностью соответствуют типам в технологии .NET Framework. Добавляя новую сущность в область проектирования, необходимо присвоить ей имя. Кроме того, требуется указать, в какой файл ее следует включить: в новый или существующий.
Для того чтобы удалить сущности из диаграммы, надо щелкнуть на них правой кнопкой мыши и выбрать в контекстном меню команду Remove From Diagram. В этом случае они не удаляются из исходного кода, а исчезают из диаграммы классов. Если разработчик все же хочет удалить связанный с сущностью исходный код, следует выбрать команду Delete Code.
Для того чтобы увидеть код, связанный с сущностью, следует дважды щелкнуть на сущности или выбрать команду View Code в контекстном меню, которое открывается после щелчка правой кнопкой мыши. Сущности, включенные в инструментальную панель Toolbox, описаны ниже.
Class (класс)
Поля, свойства, методы, события и константы можно добавлять в класс с помощью контекстного меню, открывающегося после щелчка правой кнопкой мыши или с помощью окна Class Details. Несмотря на то что класс может поддерживать вложенные типы, они не могут добавляться в область проектирования. Классы могут также реализовывать интерфейсы. Например, на рисунке выше класс Order реализует интерфейс IDataErrorInfo.
Enum (перечисление)
Может содержать только список членов с присвоенными им значениями. Каждый метод имеет резюме и комментарии, но они появляются только в виде XML-комментария, расположенного напротив метода.
Interface (интерфейс)
Интерфейсы определяют свойства, методы и события, которые должен реализовать класс. Интерфейсы могут также содержать вложенные типы, но напомним, что добавление вложенных типов не поддерживается утилитой Class Designer.
Abstract Class (абстрактный класс)
Абстрактные классы не отличаются от обычных классов, за исключением того, что их имена в области проектирования набираются курсивом и снабжаются меткой Abstract (в языке C#) или Must Inherit (в языке VB).
Struct (структура)
Это единственная сущность, кроме перечислений, которая появляется в области проектирования в прямоугольнике. Аналогично классу, структура имеет поля, свойства, методы, события и константы. Кроме того, она тоже может содержать вложенные типы. Тем не менее в отличие от класса структура не имеет деструктора.
Delegate (делегат)
Несмотря на то что делегат появляется на диаграмме классов как сущность, он не может содержать вложенные типы. Он может содержать только параметры, определяющие его сигнатуру.
Соединители (connectors)
Между сущностями могут быть установлены отношения двух типов. Они иллюстрируются на диаграмме классов с помощью соединителей, описанных ниже:
Inheritance (Наследование)
Соединитель Inheritance используется для того, чтобы показать отношение между классами, наследующими свойства друг друга.
Association (Ассоциация)
Если класс содержит ссылку на другой класс, то между ними существует ассоциация. Она демонстрируется с помощью соединителя Association. Если отношение основано на коллекции, — например, на списке объектов типа Order, — его можно представить с помощью ассоциации коллекции (collection association). Ассоциация коллекции Orders показана на рисунке выше в виде соединителя, связывающего классы Customer и Order.
Ассоциацию классов (class association) можно представить либо в виде поля или свойства класса, либо в виде ассоциативной связи между классами. Для этого можно использовать контекстное меню, открывающееся после щелчка правой кнопкой мыши на поле, свойстве или линии связи между классами.
Для того чтобы показать свойство как ассоциацию коллекции, необходимо щелкнуть правой кнопкой мыши на классе и выбрать команду Show as Collection Association. В результате свойство будет скрыто в классе и показано в виде соединителя с ассоциированным классом на диаграмме.
Как создать диаграмму классов в VS2019?
Я не понимаю как сделать диаграмму классов у меня просто нет такой возможности добавить ее как это сделать?
Отслеживать
задан 26 ноя 2022 в 9:11
user530727 user530727
А у тебя установлен модуль для этого?
26 ноя 2022 в 9:13
А какой нужен модуль?
– user530727
26 ноя 2022 в 9:15
«Конструктор классов» в Visual Studio Installer посмотри
26 ноя 2022 в 9:19
Не нужен никакой модуль, в контекстном меню для интересующего файла есть пункт View class diagram.
26 ноя 2022 в 10:26
0
Сортировка: Сброс на вариант по умолчанию
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.29.8372
What is Class Designer?
With the Class Designer tool in Visual Studio, you can design, visualize, and refactor class diagrams in C#, Visual Basic, or C++ projects. Class diagrams show the code elements and their relationships in a visual design surface, which can help you better understand your project structure and reorganize your code.
Class Designer is not available in .NET Core projects.
About class diagrams
Here’s what you can do with class diagrams, in more detail:
- Design: Edit your project’s code by editing the class diagram. Add new elements and delete unwanted ones. Your changes are reflected in code.
- Visualize: Understand your project’s structure by viewing the classes in your project on a diagram. Customize your diagram so that you can focus on the project details that you care about the most. Save your diagram to use later for demonstration or documentation.
- Refactor: Override methods, rename identifiers, refactor parameters, and implement interfaces and abstract classes.
View types and relationships
Class diagrams show the details of types, for example, their constituent members, and the relationships between them. The visualization of these entities is a dynamic view into the code. This means that you can edit types in the designer and then see your edits reflected in the source code of the entity. Similarly, the class diagram is kept in sync with changes you make to code files.
If your project contains a class diagram and your project references a type that’s located in another project, the class diagram doesn’t show the referenced type until you build the project for that type. Likewise, the diagram doesn’t display changes to the code of the external entity until you rebuild the project for that entity.
Class diagram workflow
Class diagrams can help you understand the class structure of projects. These projects might have been created by other developers, or you just need a refresher on a project you created yourself. You can use class diagrams to customize, share, and present project information with others.
The first step in presenting project information is to create a class diagram that displays what you want to show. For more information, see Add a class diagram. You can create multiple class diagrams for a project that can be used to display a distinct view of the project, a chosen subset of the project’s types, or a chosen subset of the members of types.
In addition to defining what each class diagram shows, you can also change the way that information is presented; for more information, see Customize class diagrams.
After you have fine-tuned one or more class diagrams, you can copy them into Microsoft Office documents and print them, or export them as image files. For more information, see Copy class diagram elements to a Microsoft Office document, Print class diagrams and Export class diagrams as images.
Class Designer doesn’t track the location of your source files, so changing your project structure or moving source files in the project can cause Class Designer to lose track of the type, especially the source type of a typedef, base classes, or association types. You might get an error, like Class Designer is unable to display this type. If you do, drag the modified or relocated source code to the class diagram again to redisplay it.
Add class diagrams to projects
To design, edit, and refactor classes and other types, add a class diagram to your C#, Visual Basic, or C++ project. To visualize different parts of the code in a project, add multiple class diagrams to the project.
You can’t create class diagrams from projects that share code across multiple apps. To create UML class diagrams, see Create UML modeling projects and diagrams.
Install the Class Designer component
If you haven’t installed the Class Designer component, follow these steps to install it.
- Open Visual Studio Installer from the Windows Start menu, or by selecting Tools >Get Tools and Features from the menu bar in Visual Studio. Visual Studio Installer opens.
- If you already have Visual Studio installed, click the Modify button from the options.
- Select the Individual components tab, and then scroll down to the Code tools category.
- Select Class Designer and then select Modify.
Add a blank class diagram to a project
- In Solution Explorer, right-click the project node and then choose Add >New Item. Or, press Ctrl+Shift+A. If a small window appears with just the option to add a code file, choose the Show All Templates button. The Add New Item dialog opens.
- Expand General, and then select Class Diagram from the template list. For Visual C++ projects, look in the Utility category to find the Class Diagram template.
Note If you don’t see the Class Diagram template, follow the steps to install the Class Designer component for Visual Studio.
To add multiple class diagrams, repeat the steps in this procedure.
Add a class diagram based on existing types
In Solution Explorer, open a file’s context menu (right-click) and then choose View Class Diagram.
In Class View, open the namespace or type context menu and then choose View Class Diagram.
If Class View is not open, open Class View from the View menu. Or, press Ctrl+Shift+C.
To display the contents of a complete project in a class diagram
In Solution Explorer or Class View, right-click the project and choose View, then choose View Class Diagram.
An auto-populated class diagram is created.
Class Designer is not available in .NET Core projects.
Customize class diagrams
You can change the way that class diagrams display information. You can customize the whole diagram or the individual types on the design surface.
For example, you can adjust the zoom level of an entire class diagram, change how individual type members are grouped and sorted, hide or show relationships, and move individual or sets of types anywhere on the diagram.
Customizing the way that shapes appear on the diagram doesn’t change the underlying code for the types represented on the diagram.
The sections that contain type members, such as the Properties section in a class, are called compartments. You can hide or show individual compartments and type members.
Zoom in and out of the class diagram
- Open and select a class diagram file in Class Designer.
- On the Class Designer toolbar, click the Zoom In or Zoom Out button to change the zoom level of the designer surface. or Specify a particular zoom value. You can use the Zoom drop down list or type a valid zoom level (valid range is between 10% and 400%).
Note Changing the zoom level doesn’t affect the scale of your class diagram printout.
Customize grouping and sorting of type members
- Open and select a class diagram file in Class Designer.
- Right-click an empty area on the design surface and point to Group Members.
- Select one of the available options:
- Group by Kind separates individual type members into a grouped list of Properties, Methods, Events, and Fields. The individual groups depend on the entities definition: for example, a class doesn’t display any events group if there are no events yet defined for that class.
- Group by Access separates individual type members into a grouped list based on the member’s access modifiers. For example, Public and Private.
- Sort Alphabetically displays the items that make up an entity as a single alphabetized list. The list is sorted in ascending order.
Hide compartments on a type
- Open and select a class diagram file in the Class Designer.
- Right click the member category in the type you want to customize (for example, select the Methods node in a class.
- Click Hide Compartment. The selected compartment disappears from the type container.
Hide individual members on a type
- Open and select a class diagram file in Class Designer.
- Right-click the member in the type you want to hide.
- Click Hide. The selected member disappears from the type container.
Show hidden compartments and members on a type
- Open and select a class diagram file in Class Designer.
- Right-click the name of the type with the hidden compartment.
- Click Show All Members. All hidden compartments and members appear in the type container.
Hide relationships
- Open and select a class diagram file in Class Designer.
- Right-click the association or inheritance line that you want to hide.
- Click Hide for association lines, and click Hide Inheritance Line for inheritance lines.
- Click Show All Members. All hidden compartments and members appear in the type container.
Show hidden relationships
- Open and select a class diagram file in Class Designer.
- Right-click the type with the hidden association or inheritance. Click Show All Members for association lines, and click Show Base Class or Show Derived Classes for inheritance lines.
Remove a shape from a class diagram
You can remove a type shape from the class diagram without affecting the type’s underlying code. Removing type shapes from a class diagram affects only that diagram: the underlying code that defines the type and other diagrams that display the type aren’t affected.
- On the class diagram, select the type shape you want to remove from the diagram.
- On the Edit menu, choose Remove from Diagram. The type shape and any lines of association or inheritance connected to the shape no longer appear on the diagram.
Delete a type shape and its underlying code
- Right-click the shape on the design surface.
- Select Delete Code from the context menu. The shape is removed from the diagram and its underlying code is deleted from the project.
Copy class diagram elements to a Microsoft Office document
You can copy shapes from a .NET class diagram (.cd file) to other documents. You’ll either get a copy of the shape or its underlying code, based on the kind of document where you paste it. To copy shapes from UML class diagrams in a modeling project, see Export diagrams as images.
Copy a single element
Right-click the shape and choose Copy Image.
Copy several elements
- Select the shapes on the diagram that you want to copy.
- Right-click your selection and choose Copy Image.
Copy all the elements in a class diagram
- Right-click the diagram surface and choose Select All, or press Ctrl+A.
- On the Edit menu, select Copy Image.
You can also choose Copy instead of Copy Image. Copy copies the image as a regular bitmap. Copy Image copies the image as a vector-based image, which is better for most Office applications.
Export class diagrams as images
To export a class diagram that you created from code in a project, save the diagram as an image. If you want to export UML class diagrams instead, see Export diagrams as images.
Export a diagram
- Open your class diagram (.cd) file.
- From the Class Diagram menu or the diagram surface shortcut menu, choose Export Diagram as Image.
- Select a diagram.
- Select the format that you want.
- Choose Export to finish exporting.
To automatically update exported images that are linked from other documents, export the diagram again in Visual Studio.
Print class diagrams
You can print a class diagram using the print feature of Visual Studio.
To print a class diagram
- Open the class diagram.
- Click Print on the File menu.
The entire class diagram prints. You may need to adjust the settings in the Page Setup dialog box in order to print at an appropriate size.
Add comments to class diagrams
You can use comment shapes to annotate class diagrams. A comment shape has one property, Text, into which you can type text. Comment shapes exist only on the diagram surface and not in code.
A comment resides on the class diagram view in Class Designer. If you open a second class diagram onto the same project, comments you created in the first view aren’t visible. If you delete a diagram, all the comments it contained are also deleted.
You can resize a comment shape but you can’t change other aspects of its appearance, such as its background color, font, or font size.
To add a comment
- Drag a comment from the Class Designer Toolbox onto the class diagram.
- Click in the new comment shape on the diagram and type the text you want.
Use the mouse and keyboard shortcuts in the Class Diagram and Class Details window
You can use the keyboard in addition to the mouse to perform navigational actions in Class Designer and in the Class Details window.
Use the mouse in Class Designer
The following mouse actions are supported in class diagrams:
Mouse Combination | Context | Description |
---|---|---|
Double-click | Shape elements | Opens the code editor. |
Double-click | Lollipop connector | Expand/collapse lollipop. |
Double-click | Lollipop connector label | Invokes Show Interface command. |
Mouse Wheel | Class diagram | Scroll vertically. |
Shift + Mouse Wheel | Class diagram | Scroll horizontally. |
Ctrl + Mouse Wheel | Class diagram | Zoom. |
Ctrl+Shift + click | Class diagram | Zoom. |
Use the mouse in the Class Details window
Using a mouse, you can change the appearance of the Class Details window and the data it displays in the following ways:
- Clicking any editable cell lets you edit the contents of that cell. Your changes are reflected in all places that data is stored or displayed, including in the Properties window and in source code.
- Clicking any cell of a row causes the Properties window to display the properties for the element represented by that row.
- To change the width of a column, drag the boundary on the right side of the column heading until the column is the width you want.
- You can expand or collapse compartment or property nodes by clicking the arrow symbols to the left of the row.
- The Class Details window offers several buttons for creating new members in the current class and for navigating among the members’ compartments in the Class Details window grid.
Use the keyboard in Class Designer
The following keyboard actions are supported in class diagrams:
Key | Context | Description |
---|---|---|
Arrow keys | Inside type shapes | Tree-style navigation on shape contents (wrapping around shape is supported). Left and right keys expand/collapse current item if it’s expandable and navigate to parent if not (see tree-view navigation for detailed behavior). |
Arrow keys | Top-level shapes | Moving shapes on the diagram. |
Shift+arrow keys | Inside type shapes | Building continuous selection consisting of shape elements such as members, nested types, or compartments. These shortcuts do not support wrapping around. |
Home | Inside type shapes | Navigate to the top-level shape title. |
Home | Top-level shapes | Navigate to first shape on the diagram. |
End | Inside type shapes | Navigate to last visible element inside the shape. |
End | Top-level shapes | Navigate to the last shape on the diagram. |
Shift+Home | Inside type shape | Selects elements within the shape starting with the current item and ending with the top-most item on the same shape. |
Shift+End | Inside type shape | Same as Shift+Home but in top-down direction. |
Enter | All contexts | Invokes default action on the shape, which is also available via double-click. In most cases this is View Code but some elements define it differently (lollipops, compartment headers, lollipop labels). |
+ and — | All contexts | If currently focused element is expandable, these keys expand or collapse the element. |
> | All contexts | On elements with children, this expands the element if it’s collapsed and navigates to first child. |
All contexts | Navigates to the parent element. | |
Alt+Shift+L | Inside type shapes + on type shapes. | Navigates to the lollipop of currently selected shape if it’s present. |
Alt+Shift+B | Inside type shapes + on type shapes. | If base type list is shown on the type shape and has more than one item, this toggles expansion state of the list (collapse/expand). |
Delete | On type and comment shapes | Invokes Remove from Diagram command. |
Delete | On everything else. | Invokes Delete from Code command (members, parameters, associations, inheritance, lollipop labels). |
Ctrl+Delete | All contexts | Invokes Delete from Code command on selection. |
Tab | All contexts | Navigates to next child within the same parent (supports wrapping). |
Shift+Tab | All contexts | Navigates to previous child within the same parent (supports wrapping). |
Spacebar | All contexts | Toggles selection on the current element. |
Use the keyboard in the Class Details window
The following key bindings mimic the experience of typing code.
Use the following keys to navigate the Class Details window:
Key | Result |
---|---|
, (comma) | If the cursor is in a parameter row, typing a comma moves the cursor to the Name field of the next parameter. If the cursor is in the last parameter row of a method, it moves the cursor to the field, which you can use to create a new parameter. |
If the cursor is in the Summary field, typing a space adds a space character.
For a comprehensive list of keyboard shortcuts, see Keyboard shortcuts in Visual Studio.
Related content
- Create types by using Class Designer
- Work with C++ code in Class Designer
Что такое конструктор классов?
С помощью средства конструктора классов в Visual Studio можно создавать, визуализировать и рефакторинг схем классов в проектах C#, Visual Basic или C++. Схемы классов показывают элементы кода и их связи в области визуального конструктора, которые помогут лучше понять структуру проекта и реорганизовать код.
Конструктор классов пока недоступен в проектах .NET Core.
Сведения о схемах классов
Вот что можно сделать с схемами классов, более подробно:
- Разработка: редактируйте код своего проекта путем редактирования схемы классов. Добавляйте новые и удаляйте ненужные элементы. Внесенные изменения будут отражены в коде.
- Визуализация: лучше понимайте структуру своего проекта путем просмотра классов в проекте на схеме классов. Настраивайте схему таким образом, что было можно сосредоточиться на наиболее важных сведениях о проекте. Сохраняйте свою схему для использования ее в дальнейшем для демонстрации или в документации.
- Рефакторинг: переопределяйте методы, переименовывайте идентификаторы, выполняйте рефакторинг параметров, реализуйте интерфейсы и абстрактные классы.
Просмотр типов и отношений
В диаграмме классов отображаются сведения о типах, например о составляющих их элементах и отношениях между ними. Визуализация этих сущностей является динамическим представлением кода. Это означает, что можно изменять типы в конструкторе, а затем просматривать эти правки в исходном коде сущности. Аналогичным образом диаграмма классов синхронизируется с изменениями, вносимыми в файлы с кодом.
Если проект содержит схему классов и проект ссылается на тип, расположенный в другом проекте, схема классов не отображает указанный тип, пока проект не будет построен для этого типа. Аналогичным образом схема не отображает изменения в коде внешней сущности, пока не перестроите проект для этой сущности.
Процесс создания диаграммы классов
Диаграммы классов помогают понять структуру классов в проектах. Возможно, эти проекты были созданы другими разработчиками или необходимо просто обновить ваш собственный проект. Диаграммы классов можно использовать для настройки, совместного использования и предоставления сведений о проекте другим пользователям.
Первым шагом в предоставлении сведений о проекте является создание схемы классов, отображающей то, что вы хотите показать. Дополнительные сведения см. в разделе Добавление диаграммы классов. Можно создать несколько схем классов для проекта, которые можно использовать для отображения отдельного представления проекта, выбранного подмножества типов проекта или выбранного подмножества членов типов.
Помимо определения того, что отображается на каждой схеме классов, можно также изменить способ представления информации; Дополнительные сведения см. в разделе «Настройка схем классов».
После точной настройки одной или нескольких схем классов можно скопировать их в документы Microsoft Office и распечатать или экспортировать в виде графических файлов. Дополнительные сведения см. в разделе «Копирование элементов схемы классов» в документ Microsoft Office, схемы классов печати и схемы классов «Экспорт» в виде изображений.
Конструктор классов не отслеживает расположение исходных файлов, поэтому изменение структуры проекта или перемещение исходных файлов в проекте может привести к потере отслеживания типа конструктора классов, особенно исходного типа типа, базовых классов или типов ассоциаций. Может возникнуть ошибка вида Конструктору классов не удалось отобразить этот тип. В этом случае перетащите измененный или перемещенный исходный код в схему классов и повторно отобразите ее.
Добавление диаграмм классов в проекты
Для проектирования, изменения и рефакторинга классов и других типов добавьте в проект C# , Visual Basic или C++ диаграмму классов. Для визуализации различных частей кода в проекте добавьте в проект несколько диаграмм классов.
Диаграммы классов не могут быть созданы для проектов с общим кодом для нескольких приложений. Сведения о создании схем классов UML см. в разделе Создание проектов и схем моделирования UML.
Установка компонента «Конструктор классов»
Если у вас не установлен компонент Конструктор классов, выполните следующие действия, чтобы установить его.
- Откройте Visual Studio Installer из меню «Пуск» или выбрав в строке меню Visual Studio Инструменты>Получить инструменты и функции. Откроется Visual Studio Installer.
- Если у вас уже установлена Visual Studio, нажмите кнопку «Изменить » из параметров.
- Выберите вкладку Отдельные компоненты и затем прокрутите вниз до категории Средства для работы с кодом.
- Выберите Конструктор классов и нажмите Изменить.
Добавление пустой схемы классов в проект
- В обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Добавить>Новый элемент. Либо нажмите клавиши CTRL+SHIFT+A. Если небольшое окно отображается только с параметром добавления файла кода, нажмите кнопку «Показать все шаблоны «. Откроется диалоговое окно Добавление нового элемента.
- Разверните узел «Общие«, а затем выберите схему классов из списка шаблонов. Для проектов Visual C++ шаблон Схема классов находится в категории Служебные программы.
Примечание. Если шаблон Схема классов отсутствует, выполните действия по установке компонента Конструктор классов в Visual Studio.
Чтобы добавить несколько схем классов, необходимо повторить шаги данной процедуры.
Добавление диаграммы классов на основе существующих типов
В Обозреватель решений откройте контекстное меню файла (щелкните правой кнопкой мыши) и выберите «Просмотреть схему классов».
В представлении классов откройте контекстное меню пространства имен или типа и выберите пункт Просмотр схемы класса.
Если представление классов не открыто, откройте его из меню Вид. Или нажмите клавиши CTRL+SHIFT+C.
Отображение содержимого всего проекта в схеме классов
В обозревателе решений или в представлении классов щелкните проект правой кнопкой мыши и выберите Просмотр, а затем — Просмотр схемы класса.
Будет создана автоматически заполняемая диаграмма классов.
Конструктор классов пока недоступен в проектах .NET Core.
Настройка диаграмм классов
Способ отображения информации схемой классов можно изменить. В рабочей области конструирования можно настроить всю схему или отдельные типы.
Например, можно изменить масштаб всей схемы классов, изменить порядок группировки и сортировки членов отдельного типа, скрыть или отобразить отношения, переместить отдельные типы или наборы типов в любое место на схеме.
Настройка способа отображения фигур на схеме не приводит к изменению кода типов, представленных на ней.
Разделы, содержащие члены типов, например раздел Properties класса, называются секциями. Отдельные секции и члены типов можно скрывать или отображать.
Увеличение или уменьшение масштаба отображения схемы классов
- Откройте и выберите файл диаграммы классов в конструкторе классов.
- Чтобы изменить уровень масштабирования области конструктора, нажмите кнопку Увеличить или Уменьшить на панели инструментов конструктора классов. or Укажите конкретное значение масштабирования. Для этого можно воспользоваться раскрывающимся списком Масштаб или ввести допустимый уровень масштабирования (в диапазоне от 10 % до 400 %).
Примечание. Изменение уровня масштабирования не влияет на масштаб печати схемы классов.
Настройка способа группировки и сортировки членов типа
- Откройте и выберите файл диаграммы классов в конструкторе классов.
- Щелкните правой кнопкой мыши пустую часть области конструктора и наведите указатель на пункт Участники группы.
- Выберите один из трех доступных вариантов.
- Группировка по типу разделяет отдельные члены типа в сгруппированный список свойств, методов, событий и полей. Отдельные группы зависят от определения сущностей: например, класс не отображает группу событий, если для этого класса нет событий.
- Группировка по доступу разделяет отдельные члены типа в сгруппированный список модификаторов доступа членов. Например, общие и частные.
- Сортировать по алфавиту отображает элементы, из которых состоит сущность, в виде единого упорядоченного в алфавитном порядке списка. Список сортируется в порядке возрастания.
Скрытие секций в типе
- Откройте и выберите файл диаграммы классов в конструкторе классов.
- Щелкните правой кнопкой мыши категорию членов в типе, которую требуется настроить (например, выберите узел Методы в классе).
- Щелкните Скрыть ячейку. Выбранная секция исчезнет из контейнера типа.
Скрытие отдельных членов в типе
- Откройте и выберите файл диаграммы классов в конструкторе классов.
- Правой кнопкой мыши щелкните член в типе, который требуется скрыть.
- Щелкните Скрыть. Выбранный член исчезнет из контейнера типа.
Отображение скрытых секций и членов в типе
- Откройте и выберите файл диаграммы классов в конструкторе классов.
- Правой кнопкой мыши щелкните имя типа, содержащего скрытую секцию.
- Щелкните Показать все члены. Все скрытые секции и члены появятся в контейнере типа.
Скрытие отношений
- Откройте и выберите файл диаграммы классов в конструкторе классов.
- Правой кнопкой мыши щелкните линию связи или наследования, которую требуется скрыть.
- Выберите Скрыть для линий связи или Скрыть линию наследования для линий наследования.
- Щелкните Показать все члены. Все скрытые секции и члены появятся в контейнере типа.
Отображение скрытых отношений
- Откройте и выберите файл диаграммы классов в конструкторе классов.
- Правой кнопкой мыши щелкните имя типа, содержащего скрытые линии связи или наследования. Щелкните Показать все члены для линий связи либо Показать базовый класс или Показать производные классы для линий наследования.
Удаление фигуры со схемы классов
Фигуру типа можно удалить из схемы классов, не затронув соответствующий код типа. Удаление фигур типов на схеме классов влияет только на такую схему: базовый код, определяющий тип и другие схемы, отображающие тип, не влияют.
- На схеме классов выберите фигуру типа, которую необходимо удалить из схемы.
- В меню Правка выберите команду Удалить из схемы. Фигура типа и все линии связи или наследования, соединенные с фигурой, больше не будут отображаться на схеме.
Удаление фигуры типа и ее кода
- Щелкните правой кнопкой мыши на рабочей области конструирования.
- В контекстном меню выберите команду Удалить код. Фигура удаляется из схемы, а ее базовый код удаляется из проекта.
Копирование элементов диаграммы классов в документ Microsoft Office
Можно копировать фигуры из схемы классов .NET (файл .cd) в другие документы. В зависимости от типа документа, в который выполняется вставка, при вставке будет получена либо копия фигуры, либо ее базовый код. Сведения о копировании фигур из схем классов UML в проекте моделирования см. в статье Экспорт схем в виде изображений.
Копирование одного элемента
Щелкните фигуру правой кнопкой мыши и выберите пункт Копировать изображение.
Копирование нескольких элементов
- Выберите на схеме фигуры, которые требуется скопировать.
- Щелкните выбранные фигуры правой кнопкой мыши и выберите пункт Копировать изображение.
Копирование всех элементов в схеме классов
- Щелкните правой кнопкой мыши область схемы и выберите команду «Выбрать все» или нажмите клавиши CTRL +A.
- В меню Правка выберите Копировать изображение.
Можно также выбрать команду Копировать вместо Копировать изображение. Команда Копировать копирует изображение как обычный точечный рисунок. Команда Копировать изображение копирует изображение как векторное изображение, что лучше подходит для большинства приложений Office.
Экспорт диаграмм классов в виде изображений
Чтобы экспортировать схему классов, созданную на основе кода в проекте, сохраните ее как изображение. Если вместо этого нужно экспортировать схемы класса UML, см. статью Экспорт схем в виде изображений.
Экспорт схем
- Откройте файл со схемой классов (.cd).
- В меню Схема классов или в контекстном меню области схемы выберите пункт Экспортировать схему как рисунок.
- Выберите схему.
- Выберите нужный формат.
- Выберите Экспорт, чтобы завершить экспорт.
Чтобы автоматически обновить экспортированные изображения, на которые есть ссылки в других документах, еще раз экспортируйте схему в Visual Studio.
Печать схем классов
Схему классов можно распечатать с помощью функции печати Visual Studio.
Печать схемы классов
- Откройте схему классов.
- В меню Файл выберите команду Печать.
Будет распечатана вся схема классов. При необходимости печати на бумаге соответствующего размера может потребоваться корректировка настроек в диалоговом окне Параметры страницы.
Добавление комментариев в диаграммы классов
Для добавления примечаний к схемам классов можно использовать фигуры комментария. У фигуры комментария есть свойство Текст, в которое можно вводить текст. Фигуры комментария существуют только в области схемы, а не в коде.
Комментарий находится в представлении диаграммы классов в конструкторе классов. Если открыть схему второго класса в том же проекте, комментарии, созданные в первом представлении, не отображаются. При удалении схемы классов все содержащиеся в ней комментарии также удаляются.
Вы можете изменить размер фигуры комментариев, но изменить другие аспекты его внешнего вида, например цвет фона, шрифт или размер шрифта.
Добавление комментария
- Перетащите комментарий из панели инструментов конструктора классов на схему классов.
- Щелкните новую фигуру комментария на схеме и введите нужный текст.
Использование сочетаний клавиш и мыши в окне «Схема классов» и «Сведения о классах»
Вы можете использовать клавиатуру в дополнение к мыши для навигации в конструкторе классов и окне Сведения о классах.
Использование мыши в конструкторе классов
В схемах классов поддерживаются следующие действия мыши.
Комбинации мыши | Контекст | Description |
---|---|---|
Дважды щелкните | Shape — элементы | Открывает редактор исходного кода. |
Дважды щелкните | Соединитель без описания операций | Интерфейс развертывания и свертывания без описания операций. |
Дважды щелкните | Метка соединителя без описания операций | Вызывает команду Показать интерфейс |
Колесико мыши | Диаграмма классов | Вертикальная прокрутка. |
SHIFT + колесико мыши | Диаграмма классов | Горизонтальная прокрутка. |
CTRL + колесико мыши | Диаграмма классов | Изменение масштаба. |
CTRL+SHIFT + щелчок | Диаграмма классов | Изменение масштаба. |
Использование мыши в окне «Сведения о классах»
С помощью мыши можно изменить внешний вид окна Сведения о классах и данные, которые в нем отображаются, следующими способами:
- Если щелкнуть любую изменяемую ячейку, можно изменить ее содержимое. Изменения будут отражены во всех местах, где данные хранятся или отображаются, в том числе в окне Свойства и в исходном коде.
- Если щелкнуть любую ячейку строки, в окне Свойства появятся свойства элемента, представленного этой строкой.
- Чтобы изменить ширину столбца, перетащите границу справа от заголовка столбца до требуемой ширины столбца.
- Можно развернуть или свернуть узлы секции или свойств, щелкнув символы со стрелками слева от строки.
- В окне Сведения о классе есть несколько кнопок для создания членов в текущем классе и для перехода между секциями членов в таблице окна Сведения о классе.
Использование клавиатуры в конструкторе классов
В схемах классов поддерживаются следующие действия клавиатуры.
Ключ. | Контекст | Description |
---|---|---|
Клавиши со стрелками | Внутри фигур типа | Древовидная навигация по содержимому фигуры (поддерживается обтекание фигуры). Левый и правый ключи разворачивают и свернут текущий элемент, если он можно развернуть и перейти к родительскому элементу, если нет (см. навигацию в виде дерева для подробного поведения). |
Клавиши со стрелками | Фигуры верхнего уровня | Перемещение фигур на схеме. |
SHIFT+клавиши со стрелками | Внутри фигур типа | Формирование непрерывного выделения, состоящего из элементов фигур, например членов, вложенных типов или секций. Следующие сочетания клавиш не поддерживают обтекание. |
Домашняя страница | Внутри фигур типа | Переход к заголовку фигуры верхнего уровня. |
Домашняя страница | Фигуры верхнего уровня | Переход к первой фигуре на схеме. |
Окончание | Внутри фигур типа | Переход к последнему отображаемому элементу внутри фигуры. |
Окончание | Фигуры верхнего уровня | Переход к последней фигуре на схеме. |
SHIFT+HOME | Внутри фигуры типа | Выбор элементов в фигуре, начиная с текущего и заканчивая верхним элементом той же фигуры. |
SHIFT+END | Внутри фигуры типа | То же, что и SHIFT+HOME, но в направлении сверху вниз. |
Введите | Все контексты | Вызывает действие по умолчанию для фигуры, которое также доступно с помощью двойного щелчка мыши. В большинстве случаев это представление кода, но некоторые элементы определяют его по-разному (интерфейсы без описания операций, заголовки секции, метки без описания операций). |
+ и —. | Все контексты | Если элемент в фокусе можно развернуть, эти клавиши развертывают или сворачивают элемент. |
> | Все контексты | В элементах с дочерними элементами этот элемент расширяется, если он свернут и переходит к первому дочернему элементу. |
Все контексты | Переход к родительскому элементу. | |
ALT+SHIFT+L | Внутри фигур типа и на фигурах типа. | Перейдите к lollipop выбранной фигуры, если она присутствует. |
ALT+SHIFT+В | Внутри фигур типа и на фигурах типа. | Если список базовых типов отображается на фигуре типа и содержит более одного элемента, это сочетание переключает состояние развертывания списка (развернут или свернут). |
Удалить | На фигурах типа и комментария | Вызывает команду Удалить из схемы |
Удалить | В любом другом месте. | Вызывает команду Удалить из кода (члены, параметры, сопоставления, наследование, метки без описания операций) |
Ctrl+Delete | Все контексты | Вызывает команду Удалить из кода для выделенного элемента |
Вкладка | Все контексты | Переход к следующему дочернему элементу того же родительского элемента (поддерживает обтекание). |
Shift+Tab | Все контексты | Переход к предыдущему дочернему элементу того же родительского элемента (поддерживает обтекание). |
ПРОБЕЛ | Все контексты | Переключает выбор в текущем элементе. |
Использование клавиатуры в окне «Сведения о классах»
Следующие ключевые привязки имитируют интерфейс ввода кода.
Используйте следующие клавиши для перемещения в окне Сведения о классах.
Ключ. | Результат |
---|---|
, (запятая) | Если курсор находится в строке параметров, введите запятую, чтобы переместить курсор в поле «Имя» следующего параметра. Если курсор находится в последней строке параметра метода, он перемещает курсор параметров, которое можно использовать для создания нового параметра. |
Если курсор находится в поле «Сводка», ввод пробела добавляет символ пробела.
Полный список сочетаний клавиш см. в разделе «Сочетания клавиш» в Visual Studio.
Связанный контент
- Создание типов с помощью конструктора классов
- Работа с кодом C++ в конструкторе классов