输入辅助
除了通过在 完成列表中提供智能建议为您节省时间外,JetBrains Rider 还提供其他输入辅助功能,让您更快地创建和编辑代码。
自动插入匹配的分隔符
默认情况下,每当您键入一个起始分隔符 (、 [、 " 或 ' 时,会自动插入一个匹配的字符(在适当的情况下)。 如果您改变主意并按下
退格
删除起始分隔符,其匹配的结束分隔符也会被删除。 如果匹配的结束分隔符已经存在,JetBrains Rider 不会再添加另一个。 匹配的符号会根据您的 格式化偏好插入。
关于大括号 {} ,JetBrains Rider 可以在键入起始大括号时立即提供结束大括号,或者在按下
输入
时提供。
如果需要,您可以更改默认行为。 To do so, go to the page of JetBrains Rider 设置 Ctrl+Alt+S and use the controls in the 大括号和圆括号 section.
纠正 Length/Count 属性的输入错误
JetBrains Rider 防止您因错误输入数组/集合的 长度/计数 属性而出错。 当您错误地开始键入数组使用的 计数 属性时,JetBrains Rider 会允许您从完成列表中选择并替换为您可能想要键入的 长度 属性。

类似地,当您错误地开始键入集合使用的 长度 属性时,它会帮助您调用 计数 属性。

只要您接受完成建议,正确的属性就会出现:
从方法参数的使用中创建类型参数
在创建泛型方法时,您可以通过为新参数键入 T 并从完成列表中选择相应的项,轻松添加类型参数。

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

完成键入名称后,按 输入 或 标签页 继续键入。
点号和分号的智能行为
默认情况下,当您在完成列表中选择一个方法时,JetBrains Rider 会自动添加括号并将光标置于括号之间的位置,以便开始键入参数。 如果您想调用没有参数的方法,并链式调用另一个方法,您可以在光标所在位置直接键入点号,JetBrains Rider 会将其移动到正确的位置:
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" ,您可以使同一个字符串既是 插值字符串又是 逐字字符串。
使用 JetBrains Rider,顺序将始终正确——错误输入的 @$ 将自动替换为正确的 $@。
添加 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]注解的项:
如果符号已带有
[NotNull]或[CanBeNull]注解,您可以相应地键入?或!来更改现有注解。如果参数标记有 [NotNull]属性,您可以将插入点直接放在参数名称或参数类型之后并按 ! :
private void Foo([NotNull] object/*!*/ arg/*!*/)JetBrains Rider 会为此参数 生成空值检查。 您可以在 JetBrains Rider 设置 的 页面上配置空值检查模式 Ctrl+Alt+S。
默认情况下, [NotNull] 或 [CanBeNull] 的输入辅助是启用的。 如果您想禁用它,请清除 JetBrains Rider 设置 页面上的 注解为 null 性... 复选框 Ctrl+Alt+S。
在按 Enter 键时使注释变为多行
块注释
如果您要编写多行块注释 /*....*/ ,可以先输入起始部分 /* ,再编写第一行,然后在该行末尾按下
输入
,JetBrains Rider 将自动插入结束部分 */。
此外,JetBrains Rider 会在您按下
输入
时,在块注释的每一行开头插入星号 *。 此行为默认启用,但您可以通过清除 JetBrains Rider 设置 页面上的 在 /* 后按 Enter 时插入 * 复选框 Ctrl+Alt+S 来关闭它。

行注释
在简单(非 XML Doc)行注释中,您可以在注释文本中间按下
输入
,为避免在新行中生成不可编译的文本,JetBrains Rider 会在文本前自动添加两个斜杠 //。 如果您在注释行末按下
输入
,您将像往常一样开始一个空的新行。
用大括号和圆括号包裹代码块
使用 JetBrains Rider,您可以选择一个代码块或表达式,然后键入一个起始 { 或结束 } 大括号将选中内容放入大括号中,或者键入一个起始 ( 或结束 ) 圆括号将选中内容放入圆括号中。
要启用或禁用此行为,请使用 JetBrains Rider 设置 页面上的 输入引号、大括号或圆括号时包围选区 复选框 Ctrl+Alt+S。
自动缩进新行
当您在编辑器中开始新行时,JetBrains Rider 可以自动计算所需的缩进,考虑到所有影响缩进的设置,例如是否以及如何使用制表符(可在 上配置),是否对齐链式方法调用(可在 上配置)等。
此行为默认启用,当您在编辑器中按下 输入 时,JetBrains Rider 会将光标设置到下一行的预期缩进位置。
如果需要,您可以通过清除 JetBrains Rider 设置 页面上的 按 Enter 时智能缩进 来禁用此行为 Ctrl+Alt+S。
您还可以在空行开头按下 标签页 时应用此智能缩进。
为此,请 分配 标签页 快捷键到 Emacs 标签页 操作。
使用 Backspace 取消代码行缩进
当您在空行上按下 退格 或当光标左侧只有空格和制表符时,JetBrains Rider 可以将光标返回到正确的缩进位置,而不是一次向后移动一个位置。

此行为可通过 JetBrains Rider 设置 页面上的 按退格时取消缩进 选择器 Ctrl+Alt+S 进行配置。 提供以下选项:
已禁用 — 每次返回光标一个位置。
到最近的缩进位置 — 返回光标到当前缩进大小的倍数的最近位置。
到正确的缩进位置 (默认)— 根据代码结构返回光标到预期的缩进位置。
结构化删除
JetBrains Rider 可以在您删除不同代码结构的部分后自动删除剩余的空格和实用字符。 例如,在删除参数或参数后 , ,在删除属性后 [] ,或在删除初始化器后 =。
当您在使用 结构选择 (Ctrl+W )或 结构导航 ( 标签页 )选择的代码元素上按下 退格 、 Delete 或 Ctrl+X 时,或者在 重新排列元素 ( Ctrl+Shift+Alt + Up/Down/Left/Right )后选择仍然存在时,会发生这种情况。

要启用或禁用此行为,请使用 JetBrains Rider 设置 页面上的 启用结构化移除 复选框 Ctrl+Alt+S。