面向 C# 开发人员的 Visual Studio 工作效率指南

了解 Visual Studio 如何帮助使用 C#.NET 开发人员提高工作效率。 充分利用性能和生产效率改进,如:导航到反编译程序集、键入时的变量名称建议、“测试资源管理器”中的层次结构视图、“转到全部”(Ctrl+T) 导航到文件/类型/成员/符号声明、智能“异常帮助程序”、代码样式配置和执行、以及众多重构和代码修补程序

有关 .NET、C++ 和其他语言的一般工作效率,请参阅 Visual Studio 的高效工作指南。 有关有用的键盘快捷方式的信息,请参阅工作效率快捷方式。 有关命令快捷方式的完整列表,请参阅默认键盘快捷方式

使用差异编辑器的键盘快捷方式

如果来自其他 IDE 或编码环境,可将键盘方案更改为 Visual Studio Code 或 ReSharper (Visual Studio)

Screenshot of the keyboard schemes in Visual Studio 2022.

Keyboard Schemes in Visual Studio

某些扩展也提供键盘方案:

Visual Studio 常用快捷方式如下:

快捷方式(所有配置文件) 命令 说明
Ctrl + T 转到全部 导航到任何文件、类型、成员或符号声明
F12(也可使用 Ctrl+单击 转到定义 导航到定义符号的位置
Ctrl+F12 转到实现 从基类型或基成员导航到各种实现
Shift+F12 查找所有引用 查看所有符号或文本引用
Alt + Home 转到基类 向上导航继承链
Ctrl+.(也可使用 C# 配置文件中的 Alt+Enter) 快速操作和重构 查看光标位置或代码选定内容处可用的代码修复、代码生成操作、重构或其他快速操作
Ctrl+D 复制行 复制游标所在的代码行
Shift+Alt++/- 扩大/收缩选定内容 展开或收缩编辑器中的当前选择
Shift + Alt + . 插入下一个匹配的脱字号 在与当前所选内容匹配的下一个位置添加所选内容和插入点
Ctrl+Q 搜索 搜索所有 Visual Studio 设置
F5 开始调试 开始调试应用程序
Ctrl+F5 不进行调试直接运行 不进行调试,直接在本地运行应用程序
Ctrl+K,D(默认配置文件)或 Ctrl+E,D(C# 配置文件) 设置文档的格式 基于换行、间距和缩进设置,清理文件中的格式设置冲突
Ctrl+、Ctrl+E(默认配置文件)或 Ctrl+W,E(C# 配置文件)\ 查看错误列表 查看文档、项目或解决方案中的所有错误
Alt + PgUp/PgDn 转到下一个/上一个问题 跳转到文档中的上一个/下一个错误、警告和建议
Ctrl+K,/ 切换单行注释/取消注释 此命令将添加或删除单行注释,具体取决于选定内容是否已添加注释
Ctrl+Shift+/ 切换块注释/取消注释 此命令将添加或删除块注释,具体取决于所选内容

注意

一些扩展取消绑定默认的 Visual Studio 键绑定。 可以按以下方式将键绑定还原为其默认设置:转到“工具”>“导入和导出设置”>“重置所有设置”,或转到“工具”>“选项”>“键盘”>“重置”。

有关键盘快捷方式和命令的详细信息,请参阅高效工作快捷方式。 或者,请参阅 Visual Studio 中的键盘快捷方式,获取完整列表以及可下载的备忘单。

Visual Studio 有一项称为“全部转到”的功能,可用于快速跳转到任何文件、类型、成员或符号声明。 若要从菜单栏中打开它,请选择“编辑”>“转到全部”>。 也可使用 Ctrl+T 键盘快捷方式打开它。

代码编辑器的右上方会显示一个小窗口。

Screenshot of the Go To All window in Visual Studio.

Screenshot of the Go To All window.

可以使用此功能执行以下操作:

  • 更改其搜索栏的位置或使用“齿轮”图标关闭“实时导航预览”。
  • 使用语法(如 t mytype)筛选结果。
  • 将搜索范围限定在当前文档。
  • 支持 Camelcase 匹配。

有关“全部转到”的详细信息,请参阅使用“转到”命令查找代码

强制实施代码样式规则

可以使用 EditorConfig 文件编写编码约定,并使其跟随源。

Code style enforcement in Visual Studio

  • 将默认文件或 .NET 样式的 EditorConfig 文件添加到项目中,方法是从解决方案资源管理器中的添加上下文菜单浮出控件中,选择“添加”>“新建项”。 然后,在“添加新项”对话框中,搜索“editorconfig”。 选择任意一个“editorconfig 文件”项模板,然后选择“添加”。

Screenshot of the EditorConfig file templates for C# in Visual Studio.

Screenshot of the EditorConfig item templates in Visual Studio.

  • 基于“工具”>“选项”>“文本编辑器”>“C#”>“代码样式”中的代码样式设置自动创建 .editorconfig 文件。

Screenshot that shows how to generate an .editorconfig file from settings in Visual Studio.

Screenshot that shows how to generate an .editorconfig file from Visual Studio settings.

  • 用于 Visual Studio 的 IntelliCode代码推断功能通过现有代码推断代码样式。 它随后将使用已定义的代码样式首选项创建非空的 EditorConfig 文件。

  • 通过编辑器直接配置代码样式规则的严重性级别。 如果没有 .editorconfig 文件,Visual Studio 将自动生成该文件。 请将光标置于错误、警告或建议上,然后键入 (Ctrl +.),以打开“快速操作和重构”菜单。 选择“配置或禁止显示问题”。 然后选择规则并选择要为该规则配置的严重性级别。 这个操作将使用规则的新严重性更新现有的 EditorConfig。

Screenshot of how to configure the severity of a code style rule from within the editor.

Configure the severity level of a code style rule directly in the editor

请参阅 .NET 编码样式规则选项文档,其中也包含完整的 EditorConfig 文件的示例。

代码清理

Visual Studio 通过“代码清理”功能按需设置代码文件的格式,其中包括代码样式首选项。 若要运行代码清理功能,请选择编辑器底部的扫把图标,或者按“Ctrl+K,Ctrl+E”。

Screenshot of the Code Cleanup button and options.

Screenshot of Code Cleanup button.

此外,还可以在整个项目或解决方中运行代码清理功能。 在“解决方案资源管理器”中右键单击项目或解决方案名称,选择“分析和代码清理”,然后选择“运行代码清理”。

Screenshot of how to run Analyze and Code Cleanup across an entire project or solution.

Screenshot of how to run Code Cleanup across an entire project or solution.

代码清理不仅可以设置文件的空格、缩进等格式,还可以应用选定的代码样式。 将从 EditorConfig 文件(若项目有此文件)或从“选项”对话框的代码样式设置中读取对各个代码样式的偏好设置。

重构和代码修补程序

Visual Studio 包含大量重构、代码生成操作和代码修补程序。 红色波浪线表示错误,绿色波浪线表示警告,三个灰色点表示代码建议。 若要访问代码修补程序,可以单击灯泡或螺丝刀图标或按 Ctrl+. 或 Alt+Enter。 每个修补程序都附带一个显示修补工作方式实时代码差异的预览窗口。

常用的快速修复和重构包括:

  • 重命名
  • 提取方法
  • 更改方法签名
  • 生成构造函数
  • 生成方法
  • 将类型移动到文件
  • 添加 NULL 检查
  • 添加参数
  • 删除不必要的 Using
  • 用于 LINQ 查询或 LINQ 方法的 Foreach 循环
  • 拉取成员

有关详细信息,请参阅代码生成功能

可以安装 .NET 分析器来标记代码问题。 也可以使用 Roslyn 分析器编写自己的重构或代码修补程序。

有几个社区成员写了一些免费扩展,这些扩展添加了更多代码检查:

“查找使用情况”、“转到实现”和“导航到反编译程序集”

Visual Studio 具有许多功能可帮助你搜索和导航代码

功能 快捷键 详细信息/改进
查找所有引用 Shift+F12 结果已着色,可按项目、定义和引用类型(例如,读取或写入)等分组。 还可“锁定”结果。
转到实现 Ctrl+F12 可以对 override 关键字使用转到定义来导航到重写成员
转到定义 F12 或 Ctrl+单击 按住 Ctrl,同时单击以导航到定义
查看定义 Alt+F12 定义的内联视图
结构可视化工具 括号中的灰色虚线 悬停鼠标查看代码结构
导航到反编译的程序集 F12 或 Ctrl+单击 通过启用以下功能导航到外部源(使用 ILSpy 反编译):“工具”>“选项”>“文本编辑器”>“C#”>“高级”>“启用导航到反编译源” 。

Go To All and Find All References

改进的 IntelliSense

使用用于 Visual Studio 的 IntelliCode 来获取上下文感知代码补全,而不仅仅是按字母排序的列表。

单元测试

我们对测试体验进行了许多改进。 可以使用 MSTest(MSTest v1 或 MSTest v2)、NUnitXUnit 测试框架进行测试。

  • 测试资源管理器测试发现速度很快。

  • 使用分层排序组织测试资源管理器中的测试。

Hierarchy view for Text Explorer in Visual Studio

  • Live Unit Testing 持续运行受代码更改影响的测试并更新内联编辑器图标以显示测试的状态。 包含或排除实时测试集中的特定测试或测试项目。 (仅限 Visual Studio Enterprise Edition。)

有关详细信息,请参阅单元测试基础知识

调试

Visual Studio 包括以下调试功能:

  • 可以搜索“Watch”、“Autos”和“Locals”窗口内的字符串。
  • 运行到点击位置,可以通过该功能将鼠标悬停在一行代码旁,点击出现的绿色“运行”图标,则程序会运行到该行停止。
  • 异常帮助程序,该功能将最重要的信息置于对话框顶层,例如,哪些变量在 NullReferenceException 中是 null
  • 后退式调试,可通过该功能返回到上一个断点或步骤,并查看当时应用程序的状态。
  • 快照调试,可通过该功能在引发异常时调查实时 Web 应用的状态(必须是在 Azure 上)。

Screenshot of the Exception Helper next to a line of code.

Exception Helper in Visual Studio

版本控制

在 Visual Studio 2022 中,可以直接在 IDE 中使用 Git 来创建、查看、签出和运行拉取请求。 有关详细信息,请参阅 Visual Studio 如何使用 Git 简化版本控制

可以使用 Git 或 TFVC 在 Visual Studio 中存储和更新代码。

  • 在 Visual Studio 2019 版本 16.8 及更高版本中,可以直接在 IDE 中使用 Git 来创建、查看、签出和运行拉取请求。

  • 在 Visual Studio 2019 版本 16.7 及更早版本中,安装 Visual Studio 扩展的拉取请求,以在不离开 Visual Studio 的情况下创建、查看、签出和运行拉取请求。

我还需要了解哪些功能?

下面是提升写代码效率的编辑器和工作效率功能列表。 可能需要启用某些功能,因为它们在默认情况下处于禁用状态。

功能 详细信息 如何启用
在解决方案资源管理器中查找文件 突出显示了解决方案资源管理器中活动的文件 “工具”>“选项”>“项目和解决方案”>“跟踪解决方案资源管理器中的活动项”
为引用程序集和 NuGet 包中的类型添加 using 显示错误灯泡和代码修补程序,以便为未引用的类型安装 NuGet 包 “工具”>“选项”>“文本编辑器”>“C#”>“高级”>“建议对引用程序集中的类型使用 using”和“建议对 NuGet 包中的类型使用 using”
启用完整解决方案分析 请在错误列表中查看解决方案中的所有错误 “工具”>“选项”>“文本编辑器”>“C#”>“高级”>“启用完整解决方案分析”
启用导航到反编译源 对外部源的类型/成员启用“转到定义”并使用 ILSpy 反编译程序显示方法体 “工具”>“选项”>“文本编辑器”>“C#”>“高级”>“启用导航到反编译源”
完成/建议模式 更改 IntelliSense 中的完成行为。 有 IntelliJ 背景的开发人员往往会使用此处的非默认设置。 “编辑”> IntelliSense >“切换完成模式”(或在编辑器中按 Ctrl+Alt+空格键)
CodeLens 显示编辑器中的代码引用信息和更改历史记录。 (源代码管理 CodeLens 指示器在 Visual Studio Community Edition 中不可用。) “工具”>“选项”>“文本编辑器”>“所有语言”>“CodeLens”
代码片段 帮助清除常见样本代码 键入代码片段名称,然后按两次 Tab
将 JSON 或 XML 粘贴为类 将任何 JSON 或 XML 文本片段复制到剪贴板,然后将其作为强类型的 .NET 类粘贴到任何 C# 代码文件中。 “编辑”>“选择性粘贴”>“将 JSON 粘贴为类”(或“将 XML 粘贴为类”)
复制和剪裁缩进 将代码从 Visual Studio 复制到其他程序(Outlook、Teams 等),无需在粘贴代码后手动修复缩进。 在 Visual Studio 2022 版本 17.7 以及更高版本中提供。