在C#中使用'var'关键字是否有性能影响?

时间:2009-11-18 14:30:46

标签: c# syntax

  

可能重复:
  C# ‘var’ vs specific type performance

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

5 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:5)

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

答案 2 :(得分:4)

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

答案 3 :(得分:2)

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

答案 4 :(得分:1)

他的意思是在编译时还是在运行时?

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

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