使用var有什么副作用

本文关键字:副作用 什么 var 使用 | 更新日期: 2023-09-27 18:03:43

可能重复:
C#';var';与特定类型性能

如果我写行,是否有任何性能成本(在类型转换等方面(

SqlConnection c = new SqlConnection(connectionString))

作为

var c = new SqlConnection(connectionString))

使用var有什么副作用

否。编译后的IL完全相同。

唯一潜在的副作用是在继承的情况下,如果变量定义是基类,并且实例化了一个子类。如果你这样做:

 BaseClass item = new DerivedClass();

这可能与不同

 var item = new DerivedClass();

这是因为第二个编译为:

 DerivedClass item = new DerivedClass();

在大多数情况下,它应该表现得相同(由于利斯科夫替换原理(。但是,如果DerivedClass使用隐藏方法,则可能会改变行为。

否。编译器在编译时知道var应该是什么(new SqlConnection的返回实际上是SqlConnection。当编译器知道右侧的类型时,可以使用var

这对运行时性能没有影响

我相信var是在编译时处理的,所以它只是编写代码的快捷方式。这意味着编译后的版本是相同的。