之前我问了一个问题,为什么我看到这么多的例子都使用了这个var关键字并得到了答案,虽然它只是匿名类型所必需的,但它仍然被用来使编写代码"更快"/更容易和"只是因为".
在这个链接("C#3.0  -  Var不是Objec")之后,我看到它var被编译成IL中的正确类型(你会在中间的文章中看到它).
我的问题是IL代码使用var关键字take 会有多少(如果有的话),如果在任何地方使用它,它是否会接近于对代码性能有可衡量的水平?
我刚刚开始在Visual Studio中使用ReSharper(在关于SO的许多建议之后).为了试一试,我打开了一个最近的ASP.NET MVC项目.我注意到它提出的第一个也是最常见的事情之一是将大多数/所有我的显式声明var改为.例如:
//From This:
MyObject foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1);
//To This:
var foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1);
等,即使采用简单的类型,如int,bool等
为什么要推荐这个?我不是来自计算机科学或.NET背景,最近"陷入".NET开发,所以我真的很想了解正在发生的事情以及它是否有益.
我有ReSharper 4.5并且到目前为止发现它非常宝贵,但我有一个顾虑; 
它似乎想要隐含每个变量声明(var).
作为一个相对较新的开发人员,在这方面我应该相信ReSharper多少钱?
从Paints Tab Headers的方法中获取以下代码片段.
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.我已经阅读了以下类似帖子,在C#中使用var关键字,但我想从ReSharper的角度来看.
我有一个数据DataTable命名dt2.我正在调用它的Select方法来获取一些特定的行.
DataRow[] foundRows;
expression = "parent_id=1";
foundRows = dt2.Select(expression);
如何将Select-method结果传递给新的DataTable- 比如说FilteredData?
我刚刚安装了Reshaper 4.5,它提出了以下建议:
return this.GetRuleViolations().Count() == 0; -- REMOVE this.
new string[] { this.ID.ToString(), this.Registration } -- REMOVE string, MAKE ANONYMOUS TYPE
int i = Method.GetNumber(); -- REPLACE int WITH var
我应该这样做吗?
我认为在某些情况下,它会降低代码的可读性,但会提高性能吗?进行这些更改有什么好处?
谢谢
如果你没有声明使用var,为什么resharper默认为警告?
我没有看到这一点?
.net ×5
c# ×5
resharper ×4
var ×2
coding-style ×1
datatable ×1
implicit ×1
performance ×1
variables ×1