Visual Studio 2015 'use var' 重构捷径

Visual Studio 2015 'use var' refactoring shortcut

是否有重构代码行以使用类似于 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>>();
}

Visual Studio 没有直接等效于 ReSharper 的许多重构工具。不幸的是,"use var" 是缺少的重构功能之一,至少从 VS 2015 开始是这样。

您可以将此正则表达式用作穷人的重构。按Ctrl+H,然后输入

Search:  (^\s*)\S[^=()]* (\w+\s*=)
Replace: var 

"\S[^=()]* "部分,包括space,匹配声明,^\s*匹配缩进,\w+\s*=匹配变量名,=在初始化前面。

缩进被捕获到</code>组;变量和 <code>= 被捕获到 </code>。替换字符串使用捕获的两个字符串格式化替换,中间带有 <code>var.

这个技巧可以帮助您非常快速地转换整个文件:目视确认您要将 "refactoring" 应用到所选项目,然后按 按钮开始到下一个声明。

尽管这种方法有助于相对轻松地制作宏,但自 VS 2010 起 Visual Studio 已删除对宏的内置支持,因此手动为此类重构创建快速快捷方式将还需要安装外部宏工具。

虽然现在没有直接的方法可以做到这一点,但在 Rosalyn 的未来版本 Visual Studio appears to be on the way 中支持这一点。

除了@dasblinkenlight 的回答之外,我还会留意执行此操作的任何自定义 NuGet 代码分析器。如果它显示为绿色波浪形错误,您可以通过快速操作有效地获取快捷方式:Ctrl+..

我还没找到一个(除了 exactly the opposite 你要找的那个)。