什么是类设计器?

使用 Visual Studio 中的 类设计器工具,可以在 C#、Visual Basic 或 C++ 项目中设计、可视化和重构类图。 类图在可视化设计图面中显示代码元素及其关系,这有助于更好地了解项目结构并重新组织代码。

注意

类设计器在 .NET Core 项目中不可用。

关于类图

下面是可以使用类图执行的操作的详细信息:

  • 设计:通过编辑类图来编辑项目代码。 添加新元素和删除不需要的元素。 所做的更改将反映在代码中。

  • 可视化:通过在图上查看项目中的类来了解项目结构。 自定义图表,以便将重点放在你最关注的项目详细信息上。 保存图表以供将来演示或存档使用。

  • 重构:重写方法、重命名标识符、重构参数以及实现接口和抽象类。

查看类型和关系

类图显示类型详细信息,例如,它们的构成成员及这些成员之间的关系。 这些实体的可视化是代码中的动态视图。 这意味着可以在设计器中编辑类型,然后查看反射在实体源代码中的编辑内容。 同样,类图将与对代码文件所做的更改保持同步。

注意

如果项目包含类图,并且项目引用了另一个项目中的类型,则在为该类型生成项目前,类图不会显示该引用的类型。 同样,在为该实体重新生成项目前,该类图不会显示对外部实体代码所做的更改。

类图工作流

可通过类图了解项目的类结构。 这些项目可能已由其他开发人员创建,或者可以对自己创建的某个项目作一些改变。 可以使用类图来自定义、共享并向其他人展示项目信息。

展示项目信息的第一步是创建一个可显示要展示的内容的类图。 有关详细信息,请参阅添加类图。 你可以为项目创建多个类图,可用于显示项目的不同视图、选定的项目类型子集或选定的类型成员子集。

除了定义每个类图显示的内容,还可以更改信息的呈现方式;有关详细信息,请参阅自定义类图

在对一个或多个类图进行微调之后,你可以将它们复制到 Microsoft Office 文档中并打印出来,或是将它们作为图像文件导出。 有关详细信息,请参阅将类图元素复制到 Microsoft Office 文档打印类图以及将类图作为图像导出

注意

类设计器不会跟踪源文件的位置,因此更改项目结构或移动项目中的源文件就可能导致类设计器无法继续对类型进行跟踪,尤其是 typedef 的源类型、基类或关联类型。 可能会收到错误,如“类设计器无法显示此类型”。 如果收到错误,要将修改过的或被重新定位的源代码再次拖到类图中以重新显示。

向项目添加类图

若要设计、编辑及重构类和其他类型,请将类图添加到 C#、Visual Basic 或 C++ 项目中。 若要直观显示项目中代码的不同部分,请将多个类图添加到该项目中。

你不可以从在多个应用间共享代码的项目创建类图。 要创建 UML 类图,请参阅创建 UML 建模项目和关系图

安装类设计器组件

如果尚未安装“类设计器”组件,请按照以下步骤进行安装 。

  1. 从 Windows 开始菜单中,或通过从 Visual Studio 中的菜单栏中选择“工具”>“获取工具和功能”,打开“Visual Studio 安装程序”。

    “Visual Studio 安装程序” 随即打开。

  2. 如果已安装 Visual Studio,请单击选项中的“修改”按钮。

  3. 选择“单个组件” 选项卡,然后向下滚动到“代码工具” 类别。

  4. 选择“类设计器” ,然后选择“修改” 。

    Screenshot of the Class Designer component in the Visual Studio Installer.

    Screenshot of the Class Designer component in the Visual Studio Installer.

    “类设计器” 组件开始安装。

向项目中添加空白类图

  1. 在“解决方案资源管理器” 中,右键单击项目节点,并选择“添加” >“新项” 。 或按 Ctrl+Shift+A。 如果显示一个小窗口,其中只需选择添加代码文件的选项,请选择“显示所有模板”按钮。

    “添加新项” 对话框随即打开。

  2. 展开“常规”,然后从模板列表中选择“类图”。 对于 Visual C++ 项目,查看“实用工具” 类别并查找“类图” 模板。

    备注

    如果未看到“类图” 模板,按步骤安装适用于 Visual Studio 的“类设计器” 组件。

    类图随即在类设计器中打开,并在“解决方案资源管理器”中以一个带 .cd 扩展名的文件出现。 可以将形状和线条从“工具箱” 拖动至关系图。

要添加多个类图,请重复上述步骤。

基于现有类型添加类图

在“解决方案资源管理器”中,打开文件上下文菜单(右键单击),然后选择“查看类图”

-或-

在“类视图” 中,打开命名空间或类型上下文菜单,然后选择“查看类图” 。

提示

如果类视图尚未打开,则从“视图”菜单打开类视图 。 或按 Ctrl+Shift+C。

在类图中显示完整项目的内容

在“解决方案资源管理器”或“类视图”中,右键单击该项目并选择“视图”,然后选择“查看类图” 。

即会创建一个自动填充的类图。

重要

类设计器在 .NET Core 项目中不可用。

自定义类图

你可以更改类图显示信息的方式。 可以在设计图面上自定义整个关系图或各个类型。

例如,你可以调整整个类图的缩放级别,更改各个类型成员的分组和排序方式,隐藏或显示关系并将单个类型或类型集移动到类图上的任意位置。

注意

自定义类图上的形状显示方式不会更改类图上表示的类型的基础代码。

包含类型成员的部分(例如类中的“属性”部分)被称为隔离舱。 你可以隐藏或显示各个隔离舱和类型成员。

放大和缩小类图

  1. 在类设计器中打开并选择类图文件。

  2. 在“类设计器”工具栏中,单击“放大”或“缩小”按钮以更改设计器图面的缩放级别 。

    指定特定的缩放值。 可以使用“缩放”下拉列表进行选择或键入有效的缩放级别(有效范围介于 10% 到 400% 之间)。

    注意

    更改缩放级别并不影响类图的打印输出比例。

自定义类型成员的分组和排序

  1. 在类设计器中打开并选择类图文件。

  2. 右键单击设计图面上的空白区域,然后指向“组成员”

  3. 选择下列可用选项之一:

    • “按种类分组”将各个类型成员组织到包含“属性”、“方法”、“事件”和“字段”等组的分组列表中。 各个组依赖于实体定义:例如,如果没有为某个类定义事件,该类不会显示任何事件组。

    • “按访问分组”根据类型成员的访问修饰符,将各个成员组织到一个分组列表中。 例如,Public 和 Private。

    • “按字母顺序排序”将组成实体的各个项显示为一个按字母顺序排序的列表。 此列表按升序排序。

隐藏类型中的隔离舱

  1. 在类设计器中打开并选择类图文件。

  2. 在要自定义的类型中右键单击成员类别(例如,在类中选择“方法”节点)。

  3. 单击“隐藏隔离舱”

    选定的隔离舱将从类型容器中消失。

隐藏类型中的各个成员

  1. 在类设计器中打开并选择类图文件。

  2. 在类型中右击要隐藏的成员。

  3. 单击“隐藏”

    选定的成员将从类型容器中消失。

显示类型中隐藏的隔离舱和成员

  1. 在类设计器中打开并选择类图文件。

  2. 右击具有隐藏的隔离舱的类型的名称。

  3. 单击“显示所有成员”

    所有隐藏的隔离舱和成员将显示在类型容器中。

隐藏关系

  1. 在类设计器中打开并选择类图文件。

  2. 右击要隐藏的关联连线或继承连线。

  3. 对关联行单击“隐藏”,对继承行单击“隐藏继承行”

  4. 单击“显示所有成员”

    所有隐藏的隔离舱和成员将显示在类型容器中。

显示隐藏的关系

  1. 在类设计器中打开并选择类图文件。

  2. 右击具有隐藏的关联或继承的类型。

    对关联行单击“显示所有成员”,对继承行单击“显示基类”或“显示派生类”

从类图中删除形状

你可以在不影响类型的基础代码的情况下从类图中删除类型形状。 从类图移除类型形状只会影响该关系图:定义类型的基础代码和显示类型的其他关系图不受影响。

  1. 在类图上,选择想要从关系图中移除的类型形状。

  2. 在“编辑”菜单上选择“从关系图中移除”

    该类型形状及与其相连的任何关联连线或继承连线都不再出现在关系图上。

删除类型形状及其基础代码

  1. 在设计图面上右击形状。

  2. 从上下文菜单中选择“删除代码”

    此时即会从关系图中移除形状,并从项目中删除形状的基础代码。

将类图元素复制到 Microsoft Office 文档

可以将形状从 .NET 类图(.cd 文件)复制到其他文档中。 可以基于将要粘贴到的文档的类型获取形状或其底层代码的拷贝。 若要复制建模项目中的 UML 类图中的形状,请参阅将关系图导出为图像

复制单个元素

右键单击该形状,然后选择“复制图像”

复制多个元素

  1. 在关系图上选择要复制的形状。

  2. 右键单击选择内容,然后选择“复制图像”

在类图中复制所有元素

  1. 右键单击关系图面,然后选择“全选”或按 Ctrl+A

  2. 在“编辑”菜单上,选择“复制图像”

还可以选择“复制”而不是“复制图像”。 “复制”将图像复制为常规位图。 “复制图像”将图像复制为大多数 Office 应用程序的显示效果会更好的基于矢量的图像。

将类图作为图像导出

要导出通过项目中的代码创建的类图,请将该类图保存为图像。 如果想要改为导出 UML 类图,请参阅将关系图导出为图像

导出关系图

  1. 打开你的类图 (.cd) 文件。

  2. 通过“类图”菜单或关系图面快捷菜单,选择“将关系图导出为图像”

  3. 选择关系图。

  4. 选择所需格式。

  5. 选择“导出”来完成导出。

若要自动更新从其他文档链接的导出图像,请在 Visual Studio 中再次导出该关系图。

可以使用 Visual Studio 的打印功能打印类图。

打印类图

  1. 打开类图。

  2. 单击“文件”菜单上的“打印”

随即将打印整个类图。 可能需要调整“页面设置”对话框中的设置,以便按适当大小进行打印。

向类图添加注释

注释形状可用于批注类图。 注释形状具有可在其中键入文本的属性 Text。 注释形状仅存在于关系图面上而非代码中。

注释位于“类设计器”中的类图视图上。 如果在同一个项目中打开第二个类图,那么在第一个视图中创建的注释不可见。 如果删除关系图,也将删除其包含的所有注释。

可以调整注释形状的大小,但不能更改其外观的其他方面,如背景色、字体或字号。

添加注释

  1. 将注释从“类设计器工具箱”拖动到类图。

  2. 单击关系图上的新注释形状,并键入所需文本。

使用“类图”和“类详细信息”窗口中的鼠标和键盘快捷方式

除鼠标外,还可使用键盘在类设计器和“类详细信息”窗口中执行导航操作 。

在类设计器中使用鼠标

类图中支持下列鼠标操作:

鼠标组合 上下文 描述
双击 Shape 元素 打开代码编辑器。
双击 棒糖形连接器 展开/折叠棒糖形。
双击 棒糖形连接器标签 调用“显示接口”命令。
鼠标滚轮 类图 垂直滚动。
Shift + 鼠标滚轮 类图 水平滚动。
Ctrl + 鼠标滚轮 类图 缩放。
Ctrl+Shift + 单击 类图 缩放。

在类详细信息窗口中使用鼠标

通过使用鼠标,可按以下列方式更改“类详细信息”窗口及其显示的数据的外观:

  • 单击任何可编辑的单元格即可编辑该单元格的内容。 你所做的更改会反映在存储或显示数据的所有位置,包括“属性”窗口中和源代码中。

  • 单击某一行的任何单元格将使“属性”窗口显示该行所表示的元素的属性。

  • 若要更改列的宽度,请将拖动列标题右侧的边界,直到列变成你想要的宽度。

  • 通过单击行左侧的箭头符号,可以扩展或折叠隔离舱或属性节点。

  • “类详细信息”窗口提供了几个按钮,用于在当前类中创建新成员以及在“类详细信息”窗口网格中的成员隔离舱之间进行导航。

在类设计器中使用键盘

类图中支持下列键盘操作:

上下文 描述
箭头键 在类型形状内 对形状内容的树式导航(支持环绕形状)。 如果当前项可展开,则左键和右键会展开/折叠此项;如果当前项不可展开,则导航到其父级(请参阅视图导航以了解详细行为)。
箭头键 顶级形状 定义关系图上的形状。
Shift+箭头键 在类型形状内 构建包含形状元素(如成员、嵌套类型或隔离舱)的连续选择。 这些快捷方式不支持环绕。
Home 在类型形状内 导航至顶级形状标题。
Home 顶级形状 导航至关系图上的第一个形状。
End 在类型形状内 导航至形状内最后一个可见元素。
End 顶级形状 导航至关系图上的最后一个形状。
Shift+Home 在类型形状内 选择形状内部以当前项开始,且以同一形状上最顶端的项结束的元素。
Shift+End 在类型形状内 Shift+Home 相同,但方向自上而下。
Enter 全部上下文 对形状调用默认操作,该操作也可通过双击使用。 在大多数情况下,这是查看代码,但某些元素以不同的方式定义它(棒糖形、隔离舱标头、棒糖形标签)。
+- 全部上下文 如果当前聚焦的元素是可扩展的,则这些密钥会展开或折叠元素。
> 全部上下文 对具有子级的元素,如果该元素处于折叠状态并导航至第一个子级,则会展开它。
< 全部上下文 导航至父元素。
Alt+Shift+L 在类型形状内和在类型形状上。 如果存在,则导航至当前所选形状的棒糖形。
Alt+Shift+B 在类型形状内和在类型形状上。 如果基类型列表在类型形状上显示且具有多个项,这会切换列表的展开状态(展开/折叠)。
删除 在类型和注释形状上 调用“从关系图中移除”命令。
删除 其他任何内容上。 调用“从代码中删除”命令(成员、参数、关联、继承、棒糖形标签)。
Ctrl+Delete 全部上下文 对选择调用“从代码中删除”命令。
Tab 全部上下文 导航至相同父项中的下一个子级(支持环绕)。
Shift+Tab 全部上下文 导航至相同父项中的上一个子级(支持环绕)。
空格键 全部上下文 在当前元素上切换选择。

在类详细信息窗口中使用键盘

注意

选择下列键绑定模拟键入代码的体验。

使用下列键导航到类详细信息窗口:

结果
, (逗号) 如果光标位于参数行中,请键入逗号可将光标移到下一个参数的名称字段。 如果光标位于方法的最后一个参数行中,则它会移动到 <添加字段> 字段中,该字段可用于创建新参数。

如果光标在类详细信息窗口中的其他位置,按原义输入一个逗号会在当前字段中添加一个逗号。
; (分号)或 ) (右括号) 将光标移到类详细信息窗口网格中下一个成员行的“名称”字段。
Tab 将光标移到下一个字段,方法是先从左到右移动,再从上到下移动。 如果将光标移出已键入文本的字段,则在此操作未生成错误时,类详细信息将处理并存储该文本

如果光标位于空字段(如 <添加参数>)上,则按 Tab 将其移动到下一行的第一个字段。
空格键 将光标移到下一个字段,方法是先从左到右移动,再从上到下移动。 如果光标位于空字段上(如 <添加参数>),它将移动到下一行的第一个字段。 请注意,将忽略紧跟着逗号键入的 <空格>。

如果光标在“摘要”字段中,键入一个空格就会添加一个空格字符。

如果光标位于给定行的隐藏列中,键入一个空格将切换“隐藏”复选框的值。
Ctrl + Tab 切换到另一个文档窗口。 例如,从类详细信息窗口切换到打开的代码文件。
Esc 如果你已经开始在字段中键入文本,则按 ESC 将等同于撤消键,这会将字段内容恢复到以前的值。 如果类详细信息窗口具有常规焦点,但特定的单元格均无焦点,则按 ESC 会将焦点移出类详细信息窗口。
向上键向下键 这些键会在类详细信息窗口网格中使光标在行间垂直移动。
向左键 如果光标位于名称列中,按左箭头将在层次结构中折叠当前节点(如果打开)。
向右键 如果光标位于名称列中,按右箭头将在层次结构中展开当前节点(如果折叠)。

提示

有关键盘快捷方式的完整列表,请参阅 Visual Studio 中的键盘快捷方式