重新排列代码元素
JetBrains Rider 允许您快速重新排列代码中的表达式、语句、类型成员和其他元素。
运作方式
要重新排列代码,请在您想移动的代码元素或选区上按下 Ctrl+Shift+Alt 。 然后将一个键盘方向键添加到组合键中,以调用相应的命令:
向上移动 和 向下移动 命令非常直观——它们可以在特定范围内相对于该范围内的其他元素上下移动元素。 例如,您可以在文件中上下移动类型,在类型中上下移动类型成员,在类型成员或复合语句中上下移动语句,等等。
如果当前元素是其范围内的第一个或最后一个,JetBrains Rider 将不允许您通过上下命令进一步移动它。
向左移动 和 向右移动 命令有两个用途:
重新排列通常写在单行中的元素。 例如,您可以左右移动属性、函数参数、表达式中的操作数、赋值语句的部分,等等。 请注意,即使这些元素写在多行中,左右命令也会应用于它们。
将语句移动到直接跟随它的复合语句或区域内(向右移动),或将语句移出复合语句或区域(向左移动)。
尽管 JetBrains Rider 尽量避免无效移动,但仍有可能在某些情况下破坏代码的逻辑或编译。 请注意,JetBrains Rider 提供了许多重构功能,帮助您安全地重新排列代码,例如 将类型移动到外部作用域的重构 和 更改签名重构。 如果在移动代码元素后代码损坏,请按 Alt+Enter 并检查可用的 快速修复。 大多数情况下,您会在 操作列表中找到正确的重构。
适用情况
JetBrains Rider 允许您以以下方式移动元素:
类型和类型成员。 请注意,如果符号有 XML 注释,JetBrains Rider 会将它们与符号一起移动。
在当前文件或包含声明中上下移动类型
在类型中上下移动类型成员
左右移动基类型
左右移动类型参数
上下移动类型参数约束
左右移动属性
声明中的参数以及函数调用中的实参都可以左右移动(如果重新排列函数声明中的参数,JetBrains Rider 将建议使用 更改签名重构 ,以确保更新该函数所有调用处的实参)
上下移动属性的 setter 和 getter
语句
左右移动赋值语句的部分
在函数或复合语句中上下移动语句
将语句移出复合语句(向左)或移入紧随其后的复合语句(向右)
在 switch 语句中上下移动 switch 部分
在 if-else、try-catch 语句的一个分支或 switch 语句的一个部分中上下移动语句
捕捉在 try-catch 语句中上下移动分支上下移动复合语句的结束大括号(贪婪大括号)。 要移动结束大括号,请将光标放在大括号外,按 Ctrl+Shift+Alt ,然后使用上下箭头将当前复合语句后续的语句包含在内或将最后一条语句移出。
类型或命名空间的起始或结束大括号也可以作为“贪婪大括号”。 在这种情况下,它将包含/排除嵌套的类型/成员/命名空间。
表达式
左右移动表达式中的操作数
左右移动集合和数组初始化中的元素
在查询表达式中上下移动子句
左右移动范围表达式操作数(C# 8)
其他元素
泛型类型/方法声明的类型参数
在模板字符串中左右移动参数
插值字符串中的值
上下移动行注释和 C 风格注释
#区域块上下移动,移出或移入另一个#区域块#区域和#endregion指令上下移动文本文件中光标所在的行上下移动
文本文件中的选区上下移动