ReSharper 2025.3 Help

输入辅助

除了通过在 完成列表中提供智能建议为您节省时间外,ReSharper 还提供其他输入辅助功能,让您更快地创建和编辑代码。

自动插入匹配的分隔符

默认情况下,每当您键入一个起始分隔符 (["' 时,会自动插入一个匹配的字符(在适当的情况下)。 如果您改变主意并按下 退格键 删除起始分隔符,其匹配的结束分隔符也会被删除。 如果匹配的结束分隔符已经存在,ReSharper 不会再添加一个。 匹配的符号会根据您的 格式化首选项 插入。

关于大括号 {} ,ReSharper 可以在键入起始大括号时或按下 输入 时立即提供结束大括号。

如果需要,您可以更改默认行为。 为此,请转到 ReSharper 选项 的 环境 | 编辑器 | 行为 页面 Alt+R, O ,并使用 大括号和圆括号 部分中的控件。

纠正 Length/Count 属性的输入错误

ReSharper 防止您因数组/集合的 Length/Count 属性输入错误而出错。 当您错误地开始为数组的使用键入 Count 属性时,ReSharper 会允许您从完成列表中选择并替换为您可能想要键入的 Length 属性。

完成数组中 Count 属性的输入错误

类似地,当您错误地开始为集合的使用键入 Length 属性时,它会帮助您调用 Count 属性。

完成集合中 Length 属性的输入错误

只要您接受完成建议,正确的属性就会出现:

void Foo(int[] array, List<int> collection) { if(array.Length == collection.Count }

您可以通过在 环境 | 智能感知 | 补全行为 页的 ReSharper 选项 Alt+R, O 清除 添加特殊条目以更正常见错误(例如,长度与计数) 复选框,禁用对误输入 Length/Count 的补全建议

从方法参数的使用中创建类型参数

在创建泛型方法时,您可以通过为新参数键入 T 并从完成列表中选择相应的项来轻松添加类型参数。

从方法参数的使用中创建类型参数

ReSharper 会将新类型参数添加到方法声明中,并将您带到可以同时键入类型参数名称的位置:

从方法参数的使用中创建类型参数

完成键入名称后,按 输入 标签页 继续键入。

点号和分号的智能行为

默认情况下,当您在完成列表中选择一个方法时,ReSharper 会自动添加括号并将光标置于括号之间的位置,以便开始键入参数。 如果您想调用没有参数的方法并链式调用另一个方法,可以在光标所在位置键入点号,ReSharper 会将其移动到正确的位置:

myStringBuilder.AppendLine(./*caret*/) 变为 myStringBuilder.AppendLine()./*caret*/

如果您刚刚键入了一个完整的方法调用,然后决定链式调用另一个方法,您无需移动光标,只需在最后一个分号后直接键入点号:

myStringBuilder.AppendLine();./*caret*/ 变为 myStringBuilder.AppendLine()./*caret*/;

当光标位于括号内时,您无需将其移到外部即可键入最终的分号,只需直接键入或在最后一个参数之后键入即可:

myStringBuilder.AppendLine("line";/*caret*/) 变为 myStringBuilder.AppendLine("line");/*caret*/

纠正逐字字符串插值的前缀

从 C# 6.0 开始,如果您以正确的顺序添加 $@ 前缀: $@"some string" ,您可以使同一个字符串同时为 插值逐字

使用 ReSharper,顺序将始终正确——错误键入的 @$ 将自动替换为正确的 $@

添加 NotNull/CanBeNull 注解

如果在您的项目中 代码注解 支持已 启用 ,您可以添加 [NotNull][CanBeNull] 注解,并且可以通过一次按键生成 null 检查:

  • 在编写方法签名或成员声明时,直接在类型名称后键入 !? 以获取带有 [NotNull][CanBeNull] 注解的项:

    ReSharper:为 NotNull/CanBeNull 注解提供输入辅助
  • 如果符号已带有 [NotNull][CanBeNull] 注解,您可以相应地键入 ?! 来更改现有注解。

  • 如果参数标记有 [NotNull] 属性,您可以将光标直接放在参数名称或参数类型之后并按下

    private void Foo([NotNull] object/*!*/ arg/*!*/)

    ReSharper 将为此参数 生成空值检查。 您可以在 ReSharper 选项 的 代码编辑 | C# | 空值检查 页面上配置空值检查模式 Alt+R, O

  • 如果您使用的是 可空引用类型 ,ReSharper 会自动将可空类型修饰符 ? 移动到正确的位置。 例如,如果您输入 string myString? ,它将被自动更正为 string? myString

默认情况下, [NotNull][CanBeNull] 的输入辅助是启用的。 如果您想禁用此功能,请在 ReSharper 选项 的 环境 | 编辑器 | 行为 页面上清除 注解为 null 性... 复选框 Alt+R, O

将表达式体成员转换为块体成员

在表达式体成员中,在 => 之后键入 { 时,ReSharper 会将其转换为块体:

ReSharper:将表达式体成员转换为块体成员

空行的虚拟缩进

ReSharper 帮助您避免尾随空格,同时将光标置于可以开始键入的位置。 当您按下 输入 时,ReSharper 不会插入缩进字符,但会根据为该行计算的缩进设置光标。 一旦您开始键入,ReSharper 会自动插入缩进字符(可能是空格、制表符或两者的混合,具体取决于设置),以确保代码保持正确格式。

此功能称为虚拟缩进,默认情况下是启用的,除非您选择在编辑器中显示空格(编辑 | 高级 | 查看空白 ),否则您甚至不会注意到它。

按 Enter 键使注释变为多行

块注释

如果您编写多行块注释 /*....*/ ,可以键入开头部分 /* ,然后编写第一行,最后在行尾按下 输入 ——ReSharper 会插入结束部分 */

此外,当您按下 输入 时,ReSharper 会在块注释的每一行开头插入星号 *。 此行为默认启用,但您可以通过清除 ReSharper 选项 的 环境 | 编辑器 | 行为 页面上的 在 /* 后按 Enter 时插入 * 复选框 Alt+R, O 来将其关闭。 即使启用了此选项,您也可以按下 Shift+Enter 添加没有前导星号的新行。

ReSharper。 按 Enter 键使块注释变为多行

行注释

在简单(非 XML 文档)行注释中,您可以在注释文本中间按下 输入 ,为避免在新行中出现不可编译的文本,ReSharper 会在文本前自动添加两个斜杠 //。 如果您在注释行末尾按下 输入 ,您将像往常一样开始一个空的新行。

用大括号和圆括号包裹代码块

使用 ReSharper,您可以选择一个代码块或表达式,然后键入一个起始 { 或结束 } 大括号将选择内容放入大括号中,或者键入一个起始 ( 或结束 ) 圆括号将选择内容放入圆括号中。

要启用或禁用此行为,请使用 ReSharper 选项 的 环境 | 编辑器 | 行为 页面上的 输入引号、大括号或圆括号时包围选区 复选框 Alt+R, O

自动缩进新行

当您在编辑器中开始新行时,ReSharper 可以自动计算所需的缩进,考虑到所有影响缩进的设置,例如是否以及如何使用制表符(可在 代码编辑 | 常规格式化器样式 上配置),是否对齐链式方法调用(可在 代码编辑 | C# | 格式化样式 | 换行和换行规则 上配置)等。

此行为默认启用,当您在编辑器中按下 输入 时,ReSharper 会将光标设置到下一行的预期缩进位置。

如有需要,您可以通过清除 ReSharper 选项 的 环境 | 编辑器 | 行为 页面上的 回车时智能缩进 Alt+R, O 来禁用此行为。

使用 Backspace 取消代码行缩进

当您在空行上按下 退格键 或当光标左侧只有空格和制表符时,ReSharper 可以将光标返回到正确的缩进位置,而不是一次向后移动一个位置。

ReSharper:Backspace 将光标返回到正确的缩进位置

此行为可通过 ReSharper 选项 的 环境 | 编辑器 | 行为 页面上的 按退格时取消缩进 选择器进行配置 Alt+R, O 。 可用的选项如下:

  • 已禁用 — 每次将光标向后移动一个位置。

  • 到最近的缩进位置 — 将光标返回到当前缩进大小的倍数的最近位置。

  • 到正确的缩进位置 (默认)— 将光标返回到根据代码结构计算的预期缩进位置。

结构性移除

ReSharper 可以在您删除不同代码结构的部分后自动移除剩余的空格和实用字符。 例如,在删除参数或参数后 , ,在删除属性后 [] ,或在删除初始化器后 =

当您在通过 结构性选择Control+W )或 结构性导航 标签页 )选择的代码元素上按下 退格键 Delete Ctrl+X 时,或者如果选择是在 重新排列元素 Ctrl+Shift+Alt + 上/下/左/右 )后存在的情况下发生。

ReSharper:结构性移除

要启用或禁用此行为,请使用 ReSharper 选项 的 环境 | 编辑器 | 行为 页面上的 启用结构化移除 复选框 Alt+R, O

最后修改日期: 2025年 12月 8日