2010-07-20 34 views
6

我有一個共同的問題,在IDE中代碼時:在Visual Studio IDE中有交換/重新排序參數的快捷方式嗎?

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

,我需要將其更改爲:

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

我經常有幾個這些需要立刻被交換。我想避免所有的打字。有沒有辦法讓這個自動化?如果我知道從哪裏開始,那麼快捷方式或某種類型的宏都會很棒。

編輯:更改爲string.Concat以顯示您不能總是修改方法簽名。我只是想在方法調用中改變參數的順序,沒有其他的。

回答

4

<Ctrl> + <Shift> + <t>將轉置兩個單詞,所以它會適用於你的情況。不幸的是,我沒有看到這個工作(沒有多個按下)的功能與更大的參數列表...

+0

這很接近,但不幸的是不能用於逗號分隔的參數。我最終得到了類似於(「foo」「bar」)或(,foo「」bar「)的東西,或許它只是引用了它的引用。但是,謝謝你的回答。 – 2010-07-20 21:39:39

+0

那就是它(引號) - 看起來像是一個VS bug,對不起... – Oren 2010-07-20 23:40:07

2

有一個內置於VS中的C#代碼選項。轉到方法定義,右鍵單擊其名稱,然後單擊重構,重新排序參數。

如果您需要C++版本,您可能需要使用正則表達式搜索並替換 - 如果是這樣,請注意類似someMethod("bar", GetOtherThingy("foo", "rofltron"))的情況。

+1

這隻重新命令簽名,而不是方法調用。 – 2010-07-20 16:49:36

+0

重新排序參數會更改簽名和對其的所有調用。 如果你真正想要的只是改變方法調用而不是簽名(它不是從你原來的問題中得到的超級清除),你仍然可以像平常一樣重構,然後很快地將實際的方法簽名返回到原來的樣子之前將所有的呼叫都撤回。 – Travis 2010-07-20 16:50:23

+0

假設我有能力改變方法。在外部裝配的情況下,我不能。 – 2010-07-20 16:52:48

相關問題