C#'var'关键字与显式定义的变量
这个问题在这里已经有了答案:
那么,将List改为var会有什么样的性能提升
不,但这不是重构的唯一有效原因。 更重要的是,它消除了冗余,并使代码缩短而不会造成任何损失。
我总是被教导明确定义一个变量,而不是使用动态变量,这是更优化的。
你误解了var
意思。 这不是动态的,因为它会产生相同的输出。 这只是意味着编译器会自行计算变量的类型。 它显然有能力这样做,因为这是用于测试类型安全性和正确性的相同机制。
它也消除了完全无用的代码重复。 对于简单的类型,这可能不会太多。 但请考虑:
SomeNamespace.AndSomeVeryLongTypeName foo = new SomeNamespace.AndSomeVeryLongTypeName();
显然,在这种情况下,加倍名称不仅是不必要的,而且实际上是有害的。
不。 他们发出完全相同的IL。
这只是一个风格问题。
var
具有的好处是,可以更轻松地更改函数的返回类型,而无需更改源代码的其他部分。 例如,将返回类型从IEnumerable<T>
更改为List<T>
。 但是,它可能会更容易引入错误。
var
关键字实际上并没有声明一个动态类型的变量。 该变量仍然是静态类型的,它只是从上下文中推断出类型。
当你有一个很长的typename时,它是一个很好的捷径(通用类型名称可以很长)
链接地址: http://www.djcxy.com/p/53799.html