Jus*_*inT 30 c# resharper performance
我目前正在使用ReSharper的30天试用版,到目前为止,我对它的建议印象深刻.然而,一个建议让我感到困惑.
当我明确定义变量时,例如:
List<String> lstString = new List<String>();
Run Code Online (Sandbox Code Playgroud)
ReSharped添加了一条波浪形的绿线并告诉我:
使用隐式类型本地变量声明.
如果我按照其建议,ReSharper将代码行更改为:
var lstString = new List<String>();
Run Code Online (Sandbox Code Playgroud)
那么,从改变List<String>到a 是否会有某种性能提升var,或者这仅仅是ReSharper的一个特点?我一直被教导明确定义变量而不是使用动态更为优化.
Kon*_*lph 61
那么,将List更改为var是否会带来某种性能提升
不,但这不是重构的唯一正当理由.更重要的是,它消除了冗余并使代码更短而没有任何清晰度损失.
我一直被教导明确定义变量而不是使用动态更为优化.
你误解了什么var意思.这绝不是动态的,因为它产生相同的输出.它只是意味着编译器自己计算变量的类型.它显然能够这样做,因为这是用于测试类型安全性和正确性的相同机制.
它还删除了完全无用的代码重复.对于简单类型,这可能不是很多.但考虑一下:
SomeNamespace.AndSomeVeryLongTypeName foo = new SomeNamespace.AndSomeVeryLongTypeName();
Run Code Online (Sandbox Code Playgroud)
显然,在这种情况下,加倍名称不仅是不必要的,而且实际上是有害的.
Meh*_*ari 12
不.它们发出完全相同的IL.
这只是一种风格问题.
var有一个好处,使您更容易更改函数的返回类型,而无需更改源代码的其他部分.例如,将返回类型更改IEnumerable<T>为List<T>.但是,它可能会更容易引入错误.
| 归档时间: |
|
| 查看次数: |
9655 次 |
| 最近记录: |