ReSharper 2025.2 Help

输入辅助

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

自动插入匹配的分隔符

默认情况下,每当您键入一个起始分隔符 (["' 时,会自动插入一个匹配的字符(在适当的情况下)。 如果您改变主意并按下 Backspace 删除起始分隔符,其匹配的结束分隔符也会被删除。 如果匹配的结束分隔符已经存在,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 }

You can disable completion suggestions for mistyped Length/Count by clearing the 添加特殊条目以更正常见错误(例如,长度与计数) checkbox on the 环境 | IntelliSense | 完成行为 page of ReSharper 选项 Alt+R, O

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

在创建泛型方法时,您可以通过为新参数键入 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 注解

If code annotations support is enabled in your project, you can add [NotNull] and [CanBeNull] annotations, as well as generate null checks with a single keystroke:

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

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

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

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

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

默认情况下, [NotNull][CanBeNull] 的输入辅助是启用的。 If you want to disable it, clear the 注解为 null 性... check-boxes on the 环境 | 编辑器 | 行为 page of ReSharper 选项 Alt+R, O .

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

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

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

空行的虚拟缩进

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

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

按 Enter 键使注释变为多行

块注释

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

此外,当您按下 输入 时,ReSharper 会在块注释的每一行开头插入星号 *。 This behavior is enabled by default, but you can turn it off by clearing the 在 /* 后按 Enter 时插入 * checkbox on the 环境 | 编辑器 | 行为 page of ReSharper 选项 Alt+R, O . 即使启用了此选项,您也可以按下 Shift+Enter 添加没有前导星号的新行。

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

行注释

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

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

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

To enable or disable this behavior, use the 输入引号、大括号或圆括号时包围选区 checkbox on the 环境 | 编辑器 | 行为 page of ReSharper 选项 Alt+R, O .

自动缩进新行

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

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

If necessary, you can disable this behavior by clearing 在回车时智能缩进 on the 环境 | 编辑器 | 行为 page of ReSharper 选项 Alt+R, O .

使用 Backspace 取消代码行缩进

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

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

This behavior is configurable with the 按退格时取消缩进 selector on the 环境 | 编辑器 | 行为 page of ReSharper 选项 Alt+R, O . 可用的选项如下:

  • 已禁用 — 每次将插入点向后移动一个位置。

  • 到最近的缩进位置 — 将插入点移动到当前缩进大小的倍数的最近位置。

  • 到正确的缩进位置 (默认)— 将插入点移动到根据代码结构预期的缩进位置。

结构性移除

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

当您按下 Backspace Delete Ctrl+X 键选择代码元素时,或在使用 结构化选择Control+W )或 结构化导航 标签页 )时,或者在 重新排列元素 Ctrl+Shift+Alt + 上/下/左/右 )后选择存在时,会发生这种情况。

ReSharper:结构化删除

To enable or disable this behavior, use the 启用结构化移除 checkbox on the 环境 | 编辑器 | 行为 page of ReSharper 选项 Alt+R, O

最后修改日期: 2025年 9月 27日