在C#中使用’var’关键字会有性能影响吗?

可能重复:
C#’var’与特定类型的性能

我广泛使用’var’关键字。 一位同事告诉我,使用它有一个性能损失,但无法支持他的评论。 有谁知道这样的性能打击?

有人在这里问了这个问题 。 简而言之,不,生成的IL代码是相同的。 因此,没有打击。 如果你想知道一种做某种方式的方式与另一种方式有什么不同,只需编写一个样本然后使用Reflector来分析差异。

不, var只是语法糖。 它实际上并没有编译成MSIL。 尝试使用var关键字编译一些代码,然后在Reflector中打开程序集以便自己查看。

由于这是一个编译时function,可以想象编译时间较慢,但运行时间不会慢。

此function称为类型推断。 编译器将在编译时推断出正确的类型,并且生成的msil将包含正确的类型

他是指在编译时还是在运行时?

在运行时,不可能有性能损失。 var关键字完全由编译器处理,从IL中判断是否使用了var关键字是完全不可能的。 你的朋友可能会想到C#4的新dynamic关键字,它会对性能产生影响。

在编译时,可能会产生微小的性能影响,但不必担心。