是否有类似于ReSharper提供的var
关键字来重构一行代码的快捷方式?
例如,如果您有以下代码:
public void Foo()
{
List<Tuple<int, object>> bar = new List<Tuple<int, object>>();
}
ReSharper可以将其格式化为:
public void Foo()
{
var bar = new List<Tuple<int, object>>();
}
var
"是缺少的重构功能之一,至少在VS 2015中是这样。
您可以将此正则表达式用作穷人的重构。按Ctrl+H,然后键入
Search: (^s*)S[^=()]* (w+s*=)
Replace: $1var $2
"S[^=()]* "
部分(包括空格)匹配声明,^s*
匹配缩进,w+s*=
匹配变量名和初始化前的=
。
缩进被捕获到$1
组;变量和CCD_ 8被捕获到CCD_。替换字符串使用两个捕获的字符串来格式化替换,var
在中间。
这个技巧可以帮助你快速转换整个文件:直观地确认你想对所选项目应用"重构",然后按→按钮转到下一个声明。
尽管这种方法有助于相对轻松地生成宏,但自VS 2010以来,Visual Studio中已经删除了对宏的内置支持,因此手动为这种类型的重构创建快速快捷方式也需要安装外部宏工具。
虽然现在还没有直接的方法来实现这一点,但在Rosalyn的未来版本中,Visual Studio似乎正在支持这一点。
除了@dasblinkenlight的回答之外,我还会留意任何自定义的NuGet代码分析器。如果它显示为一个绿色的歪歪扭扭的错误,您可以通过快速操作有效地获取快捷方式:Ctrl+。
我还没能找到一个(除了一个与你想要的完全相反的)。