我广泛使用'var'关键字。一位同事告诉我,使用它有一个性能损失,但无法支持他的评论。有没有人知道这样的表现?
答案 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
关键字,这确实会对性能产生影响。
在编译时,可能会产生微小的性能影响,但没什么可担心的。