使用var有什么副作用
本文关键字:副作用 什么 var 使用 | 更新日期: 2023-09-27 18:03:43
可能重复:
C#';var';与特定类型性能
如果我写行,是否有任何性能成本(在类型转换等方面(
SqlConnection c = new SqlConnection(connectionString))
作为
var c = new SqlConnection(connectionString))
否。编译后的IL完全相同。
唯一潜在的副作用是在继承的情况下,如果变量定义是基类,并且实例化了一个子类。如果你这样做:
BaseClass item = new DerivedClass();
这可能与不同
var item = new DerivedClass();
这是因为第二个编译为:
DerivedClass item = new DerivedClass();
在大多数情况下,它应该表现得相同(由于利斯科夫替换原理(。但是,如果DerivedClass
使用隐藏方法,则可能会改变行为。
否。编译器在编译时知道var
应该是什么(new SqlConnection
的返回实际上是SqlConnection
。当编译器知道右侧的类型时,可以使用var
。
这对运行时性能没有影响
我相信var是在编译时处理的,所以它只是编写代码的快捷方式。这意味着编译后的版本是相同的。