Resharper重新格式化String.Format()参数

时间:2013-09-19 13:38:37

标签: c# resharper

我经常发现自己写的东西像:

String.Format("{1}: {0}", reason, message);

或类似的东西,但有更多的字符串占位符。

Resharper中是否有自动重构来更改占位符和参数的顺序?如果我试图手动更改订单,我倾向于搞乱映射。

显然,上面的例子是微不足道的。我在现实中所做的经常是写下:

String.Format("{0}.{2} = {1}.{3} AND {0}.{4} = {1}.{5} AND {6}.{7} = {1}.{8}",
  table1Alias, table2Alias, col1A, col2A, col1B, col2B, table3Alias, col3C, col2C);

并且自己想,如果我能将table3Alias移到其他别名旁边的前面那就太棒了。

(Resharper 7.1.3)

3 个答案:

答案 0 :(得分:4)

对于C#6 +(Resharper 10+ / 2016 +):

  • 将光标放在string.Format
  • Alt + 输入
  • 选择Use string interpolation
  • 再次按 Alt + 输入
  • 选择Convert to string.Format

答案 1 :(得分:1)

只需将光标放在table3Alias中,然后按 Ctrl + Alt + Shift +向左/向右箭头。这会更改函数调用中的参数顺序。

还可以选择按 Ctrl + Shift + R

enter image description here

还有一个添加格式项的快捷方式。您可以通过组合这些来完成您想要的任务。您要求的确切功能未实现。

答案 2 :(得分:1)

不,没有这样的功能。