.net - ReSharper 和 var

标签 .net resharper implicit

Possible Duplicate:
Why does ReSharper want to use 'var' for everything?

我有 ReSharper 4.5,到目前为止发现它非常有用,但我有一个担忧;
它似乎想让每个变量声明都隐式(var)。
作为一个相对较新的开发人员,在这方面我应该信任 ReSharper 多少?

从绘制选项卡标题的方法中获取以下代码片段。

TabPage currentTab = tabCaseNotes.TabPages[e.Index];
Rectangle itemRect = tabCaseNotes.GetTabRect(e.Index);
SolidBrush fillBrush = new SolidBrush(Color.Linen);
SolidBrush textBrush = new SolidBrush(Color.Black);
StringFormat sf = new StringFormat
{
    Alignment = StringAlignment.Center,
    LineAlignment = StringAlignment.Center
};

Resharper 希望我将所有 5 个更改为 var。我读过以下类似的帖子,Use of var keyword in C# ,但我想从 ReSharper 的角度了解。

最佳答案

Resharper 主要致力于帮助您重构代码,而 var 关键字通常使重构变得更加容易。例如,如果任何这些函数的返回值更改为兼容类型,则您无需更改任何代码。因此,现在重构 tabCaseNotes 类型变得更加容易。

就我个人而言,我通常倾向于保留前两行,因为我喜欢在声明变量的行的某个地方看到显式列出的变量的类型名称。如果有的话,我可能会寻找一个接口(interface)来代替,这样我也可以获得与 var 关键字相同的“通用性”,而不会丢失任何重要的可读类型信息。但是,我肯定会使用 var 来表示 fillBrushtextBrushsf

关于.net - ReSharper 和 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/737835/

相关文章:

scala - 隐式函数无法注入(inject)

.net - 我应该使用 WPF 还是 Winforms 来构建我的新 Windows 桌面应用程序?

c# - 带有属性的 XML 注释中间距的 ReSharper 设置

c# - 使用 Resharper 自动删除未使用的代码

c++ - 为什么编译器选择 bool 而不是 string 来进行 L""的隐式类型转换?

scala - 解释 Scala 类型级编程中使用的 `LowPriorityImplicits` 模式

c# - 如何将 System.Drawing.Icon 转换为 System.Drawing.Image?

c# - ML.Net 适用于 Xamarin.Android,但不适用于 Xamarin.iOS : System. Reflection.Emit

c# - 系统.InvalidOperationException : Can not set Visibility

c# - 当我想发布项目: "the specified path, file name, or both are too long"时