使用不同的工具窗口查看代码结构

可以使用各种工具窗口(包括 类视图调用层次结构对象浏览器代码定义)在 Visual Studio 中检查类及其成员。 这些工具窗口可以检查 Visual Studio 项目、.NET 组件、COM 组件、动态链接库(DLL)和类型库(TLB)中的代码。

还可以使用 解决方案资源管理器 浏览项目中的类型和成员、搜索符号、查看方法的调用层次结构、查找符号引用等,而无需在多个工具窗口之间切换。

如果有 Visual Studio Enterprise 版本,可以使用 代码映射 来可视化整个解决方案中的代码结构及其依赖项。 有关详细信息,请参阅使用代码图绘制依赖项

类视图(Visual Basic、C#、C++)

类视图 显示为 解决方案资源管理器 的一部分,并显示为单独的窗口。 类视图 显示应用程序的元素。 上窗格显示命名空间、类型、接口、枚举和类,下窗格显示属于上窗格中所选类型的成员。 使用此窗口,可以移动到源代码中的成员定义(或者在 对象浏览器中 (如果元素在解决方案外部定义)。

无需编译项目才能在 类视图中查看其元素。 修改项目中的代码时,将刷新该窗口。

可以通过选择项目节点并选择 “添加 ”按钮打开“ 添加新项 ”对话框,将代码添加到项目。 代码将添加到单独的文件中。

如果项目已签入源代码控制,则每个 类视图 元素都会显示一个图标,该图标指示文件的源代码状态。 元素的快捷菜单上也提供了常见的源代码控制命令,例如 签出签入获取最新版本

类视图工具栏

类视图工具栏包含以下命令:

Name Description
新建文件夹 创建虚拟文件夹或子文件夹,在其中可以组织常用元素。 它们保存在活动解决方案 (.suo) 文件中。 重命名或删除代码中的元素后,它可能会以错误节点的形式显示在虚拟文件夹中。 若要更正此问题,请删除错误节点。 如果重命名了某个元素,则可以再次将其从项目层次结构移动到该文件夹中。
返回 导航到之前选择的项。
转发 导航到下一个选定项。
查看类图 (仅限托管代码项目) 类视图中选择命名空间或类型时可用。 选择命名空间后,类图会显示其中的所有类型。 选择类型后,类图仅显示该类型。

类视图设置

工具栏上的 “类视图设置” 按钮具有以下设置:

Name Description
显示基类型 将显示基类型。
显示项目引用 将显示项目引用。
显示隐藏类型和成员 隐藏类型和成员(不供客户端使用)以浅灰色文本显示。
显示公共成员 将显示公共成员。
显示受保护的成员 将显示受保护的成员。
显示专用成员 将显示专用成员。
显示其他成员 显示其他类型的成员,包括内部成员(或 Visual Basic 中的好友) 成员。
显示继承的成员 将显示继承的成员。

类视图快捷菜单

类视图中的快捷方式(或右键单击)菜单可能包含以下命令,具体取决于所选项目的类型:

Name Description
转到定义 在源代码或 对象浏览器中查找元素的定义(如果未在打开的项目中定义该元素)。
浏览定义 对象浏览器中显示所选项。
查找所有引用 查找当前选定的对象项,并在 “查找结果” 窗口中显示结果。
筛选类型 (仅限托管代码) 仅显示所选类型或命名空间。 可以通过选择“查找”框旁边的“清除查找”按钮来删除筛选器。
Copy 复制项的完全限定名称。
按字母顺序排序 按名称按字母顺序列出类型和成员。
按成员类型排序 按类型列出类型和成员(例如类位于接口之前、接口位于委托之前,方法位于属性前面)。
按成员访问排序 按访问类型(如公共或专用)按顺序列出类型和成员。
按成员类型分组 按对象类型将类型和成员排序为组。
转到声明 (仅C++代码) 显示源代码中类型或成员的声明(如果可用)。
转到定义 显示源代码中类型或成员的定义(如果可用)。
转到参考 显示对源代码中的类型或成员的引用(如果可用)。
查看呼叫层次结构 “调用层次结构 ”窗口中显示所选方法。

“调用层次结构”窗口(Visual Basic、C#、C++)

调用层次结构 ”窗口显示调用给定的方法或属性的位置。 它还列出了从该方法调用的方法。 可以查看调用图的多个级别,其中显示了指定作用域中方法之间的调用方-被调用方关系。

可以在编辑器中选择方法(或属性或构造函数),然后在快捷菜单中选择“查看调用层次结构”来显示“调用层次结构”窗口。 显示应类似于下图:

Visual Studio 中的“调用层次结构”窗口

通过使用工具栏上的下拉列表,可以指定层次结构的范围:解决方案、当前项目或当前文档。

主窗格显示对方法的调用和调用, “呼叫网站 ”窗格显示所选呼叫的位置。 对于虚拟或抽象成员,将显示 Overrides 方法名称 节点。 对于接口成员,将显示 一个 Implements 方法名称 节点。

“调用层次结构”窗口找不到方法组引用,其中包括将方法添加为事件处理程序或分配给委托的位置。 若要查找这些引用,请使用 “查找所有引用 ”命令。

“调用层次结构”窗口中的快捷菜单包含以下命令:

Name Description
添加为新根 将所选节点添加为新的根节点。
删除根 从树视图窗格中删除所选根节点。
转到定义 导航到方法的原始定义。
查找所有引用 在项目中查找对所选方法的所有引用。
Copy 复制所选节点(但不复制其子节点)。
刷新 刷新信息。

对象浏览器

对象浏览器” 窗口显示项目中代码的说明。

可以使用窗口顶部的下拉列表筛选要查看的组件。 自定义组件可以包括托管代码可执行文件、库程序集、类型库和 .ocx 文件。 无法添加C++自定义组件。

自定义设置保存在 Visual Studio 用户应用程序目录中, %APPDATA%\Microsoft\VisualStudio\16.0\ObjBrowEX.dat

对象浏览器的左窗格显示程序集。 可以展开程序集以显示它们包含的命名空间,然后展开命名空间以显示它们所包含的类型。 选择类型时,其成员(如属性和方法)列在右窗格中。 右下窗格显示有关所选项的详细信息。

可以使用窗口顶部的 “搜索 ”框搜索特定项。 搜索不区分大小写。 搜索结果显示在左窗格中。 若要清除搜索,请选择“搜索”框旁边的“清除搜索”按钮

对象浏览器会跟踪所做的选择,并且可以使用工具栏上的“前进”和“后退”按钮在所选内容之间导航。

可以通过选择项(程序集、命名空间、类型或成员)并选择工具栏上的“添加引用”按钮,使用对象浏览器向打开的解决方案添加程序集引用。

对象浏览器设置

通过使用工具栏上的 “对象浏览器设置” 按钮,可以指定以下视图之一:

Name Description
查看命名空间 在左窗格中显示命名空间而不是物理容器。 存储在多个物理容器中的命名空间将合并。
查看容器 在左窗格中显示物理容器而不是命名空间。 视图命名空间视图容器 是互斥的设置。
显示基类型 显示基类型。
显示隐藏类型和成员 以浅灰色文本显示隐藏类型和成员(不适合由客户端使用)。
显示公共成员 显示公共成员。
显示受保护的成员 显示受保护的成员。
显示专用成员 显示私有成员。
显示其他成员 显示其他类型的成员,包括内部成员(或 Visual Basic 中的好友) 成员。
显示继承的成员 显示继承的成员。
显示扩展方法 显示扩展方法。

对象浏览器快捷菜单命令

对象浏览器中的快捷方式(或右键单击)菜单可能包含以下命令,具体取决于所选的项类型:

Name Description
浏览定义 显示所选项的主节点。
查找所有引用 查找当前选定的对象项,并在 “查找结果” 窗口中显示结果。
筛选到类型 仅显示所选类型或命名空间。 可以通过选择“ 清除搜索 ”按钮来删除筛选器。
Copy 复制项的完全限定名称。
删除 如果作用域是自定义组件集,则从范围中删除所选组件。
按字母顺序排序 按名称按字母顺序列出类型和成员。
按对象类型排序 按类型列出类型和成员(例如类位于接口之前、接口位于委托之前,方法位于属性前面)。
按对象访问排序 按访问类型(如公共或专用)按顺序列出类型和成员。
按对象类型分组 按对象类型将类型和成员排序为组。
转到声明 (仅C++项目) 显示源代码中类型或成员的声明(如果可用)。
转到定义 显示源代码中类型或成员的定义(如果可用)。
转到参考 显示对源代码中的类型或成员的引用(如果可用)。
查看呼叫层次结构 “调用层次结构 ”窗口中显示所选方法。

代码定义窗口

代码定义 ”窗口显示活动项目中所选C++、C# 或 Visual Basic 类型或成员的定义。 可以在代码编辑器或代码视图窗口中选择类型或成员。

虽然此窗口是只读的,但你可以在其中设置断点或书签。 若要修改显示的定义,请选择快捷菜单上的 “编辑定义 ”。 这会在代码编辑器中打开源文件,并将插入点移动到定义开始的行。

代码定义快捷菜单

代码定义 ”窗口中的快捷方式(或右键单击)菜单可能包含以下命令:

Name Description
快速作和重构
Rename
生成包含文件的图形
速览定义
转到定义 查找定义(或部分类的定义),并在 “查找结果” 窗口中显示它们。
转到声明
查找所有引用 查找对解决方案中类型或成员的引用。
查看呼叫层次结构 “调用层次结构” 窗口中显示该方法。
切换标头/代码文件
运行测试 如果项目中存在单元测试,请运行所选代码的测试。
调试测试
断点 插入断点(或跟踪点)。
运行到游标 在调试模式下运行程序到游标的位置。
代码片段
剪切复制粘贴
Annotation
概述 标准大纲说明命令。
重新扫描
编辑定义 将插入点移动到代码窗口中的定义。
选择编码 打开 “编码” 窗口,以便您可以设置文件的编码。

“文档大纲”窗口

可以将 “文档大纲 ”窗口与设计器视图结合使用,例如 XAML 页面或 Windows 窗体设计器的设计器,也可以使用 HTML 页面。 此窗口显示树视图中的元素,以便可以查看窗体或页面的逻辑结构,并查找深度嵌入或隐藏的控件。