我正在学习C#和.NET,我经常var
在我的代码中使用该关键字.我从Eric Lippert那里得到了这个想法,我喜欢它如何提高代码的可维护性.
我很想知道,虽然......很多关于缓慢堆位的引用的博客都写过,但我自己并没有观察到这一点.这实际上很慢吗?我指的是由于类型推断导致编译时间慢.
Mar*_*ell 17
你说:
由于类型'推理',我指的是编译时间慢
这不会减慢编译器的速度.编译器已经有知道表达式的结果类型,以便检查兼容性分配的(直接或间接).在某些方面,使用这种已知类型会删除一些东西(例如,可能需要检查继承,接口和转换运算符).
它也不会减慢运行时间; 它们是完全静态编译的,就像常规的c#变量(它们是).
简而言之...... 事实并非如此.
n8w*_*wrl 14
C#中的'var'不像你在VB中习惯的VARIANT.var是简单的语法糖,编译器允许您使用它来缩写类型.编译器会计算表达式右侧的类型,并将变量设置为该类型.它根本没有性能影响 - 就像你输入完整类型表达式一样:
var x = new X();
Run Code Online (Sandbox Code Playgroud)
完全一样的
X x = new X();
Run Code Online (Sandbox Code Playgroud)
这似乎是一个微不足道的例子,而且确实如此.当表达式更加复杂甚至"无法表达"(如匿名类型)和枚举时,这真的很闪耀.