在 Visual Studio IDE 中是否有交换/重新排序参数的快捷方式?

问题描述 投票:0回答:4

在 IDE 中处理代码时,我遇到一个常见问题:

string.Concat("foo", "bar");

我需要将其更改为:

string.Concat("bar", "foo");

我经常有几个需要立即更换的东西。我想避免所有打字。有没有办法自动执行此操作?如果我知道从哪里开始,无论是快捷方式还是某种宏都会很棒。

编辑:改为 string.Concat 以表明不能总是修改方法签名。我只想更改方法调用中参数的顺序,而不是其他。

visual-studio visual-studio-2010 ide code-editor
4个回答
5
投票

<Ctrl>
+
<Shift>
+
<t>
将调换两个单词,因此它适用于您的情况。不幸的是,对于具有较大参数列表的函数,我认为这不起作用(无需多次按下)...


2
投票

我有很多带有此功能的代码:

SetInt(comboBox1.Value + 1, "paramName", ...
SetInt(comboBoxOther.Value, "paramName", ...

我只需要交换前两个参数;

我最终使用了一些具有正则表达式管理功能的文本编辑器(例如Scite),并且使用这个编辑器节省了我几个小时:

Find: SetInt(\([.a-z0-9]+[ + 1]*\), \("[a-z0-9]+"\)
Replace: SetInt(\2, \1 

0
投票

我使用的扩展程序正好可以完成这一件事。

它描述自己为

允许参数(或其他逗号分隔的列表包含在 括号、大括号等)左右移动。

https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.shifter


-1
投票

Resharper 再次展现出优于 Visual Studio 的卓越功能。由于没有明确的答案,而且我是通过谷歌搜索来到这里的,所以我觉得有必要提供以下信息:

Resharper 有一个名为“更改签名重构”的重构功能,它与“重新排列代码元素”的快捷方式无缝配合。 您只需选择要移动的参数,然后按 Ctrl+Shift+Alt + 左/右

  1. 完成后,您可以按 Alt+Enter 并选择
  2. Apply Change Signature refactoring...
© www.soinside.com 2019 - 2024. All rights reserved.