将C#var重构为显式类型的工具

Ian*_*n G 18 c# refactoring

我们的编码标准要求我们尽量减少C#var的使用(建议限制它与Linq一起使用).然而,有时候使用泛型的地方比较方便,例如

Dictionary<DateTime, Dictionary<string, float>> allValues = ...
// ...
foreach (var dateEntry in allValue)
Run Code Online (Sandbox Code Playgroud)

更容易打字

foreach (KeyValue<DateTime, Dictionary<string, float>> dateEntry in allValue) 
Run Code Online (Sandbox Code Playgroud)

(并且比在某些情况下记住显式类型更容易).

任何重构工具都能够将前者转换为后者.我已经看过Resharper,但它似乎并没有(事实上,它的默认建议是向相反的方向发展).

Mar*_*ell 19

我有ReSharper 4.1,它确实提供了这个选项(在任一方向).

实际上,我建议挑战标准......前者比后者更具可读性(特别是如果你调用变量pair或类似的东西).我不会使用"var" var i = 0,但它非常适合上述.

如需批量更改,请访问:

  • 清理代码...(选择个人资料=>"编辑个人资料"=>工具=>代码清理)
    • C#
      • 在声明中使用'var'
        • 替换方向=可以'var'来键入用法
        • 'foreach'迭代器声明样式=始终使用显式类型
        • 局部变量声明样式=始终使用显式类型

并运行...


Hav*_*uit 14

这在Visual Studio 2017中是可行的.

工具>选项>文本编辑器> C#>代码样式>常规 -

查找'var'首选项>当变量类型明显时.对于Preference,选择"Prefer explicit type",对于Severity,选择"Suggestion".

在此输入图像描述

现在,您将在使用时获得灯泡操作var,并且可以使用Ctrl.快捷键快速更改为显式类型.

在此输入图像描述

在此输入图像描述