在 IDE 中处理代码时,我遇到一个常见问题:
string.Concat("foo", "bar");
我需要将其更改为:
string.Concat("bar", "foo");
我经常有几个需要立即更换的东西。我想避免所有打字。有没有办法自动执行此操作?如果我知道从哪里开始,无论是快捷方式还是某种宏都会很棒。
编辑:改为 string.Concat 以表明不能总是修改方法签名。我只想更改方法调用中参数的顺序,而不是其他。
<Ctrl>
+ <Shift>
+ <t>
将调换两个单词,因此它适用于您的情况。不幸的是,对于具有较大参数列表的函数,我认为这不起作用(无需多次按下)...
我有很多带有此功能的代码:
SetInt(comboBox1.Value + 1, "paramName", ...
SetInt(comboBoxOther.Value, "paramName", ...
我只需要交换前两个参数;
我最终使用了一些具有正则表达式管理功能的文本编辑器(例如Scite),并且使用这个编辑器节省了我几个小时:
Find: SetInt(\([.a-z0-9]+[ + 1]*\), \("[a-z0-9]+"\)
Replace: SetInt(\2, \1
我使用的扩展程序正好可以完成这一件事。
它描述自己为
允许参数(或其他逗号分隔的列表包含在 括号、大括号等)左右移动。
https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.shifter
Resharper 再次展现出优于 Visual Studio 的卓越功能。由于没有明确的答案,而且我是通过谷歌搜索来到这里的,所以我觉得有必要提供以下信息:
Resharper 有一个名为“更改签名重构”的重构功能,它与“重新排列代码元素”的快捷方式无缝配合。 您只需选择要移动的参数,然后按 Ctrl+Shift+Alt + 左/右
Apply Change Signature refactoring...