当 C# 4.0 出现时,我们有了如此处描述的动态关键字excellent presentation by Anders Hejlsberg http://channel9.msdn.com/pdc2008/TL16/,(C#的发展速度比我能跟上的要快。.我没有太多时间熟悉var关键字)
我还需要 var 关键字吗?有什么是 var 可以做的,而 Dynamic 不能做的吗?
var x = SomeFunctionThatIKnowReturnsSomeKindOfList();
// do something with x
dynamic x = SomeFunctionThatIKnowReturnsSomeKindOfList();
// do something with x
不,他们非常不同。
var
意味着“在编译时推断变量的类型” - 但它仍然完全静态绑定。
dynamic
意思是“假设我可以用这个变量做任何我想做的事情” - 即编译器不知道哪些操作可用,并且 DLR 将计算出调用的内容really表示执行时。
我期望使用dynamic
很少 - 只有当我真正想要动态行为时:
-
var
让你在编译时捕获拼写错误等
- 静态绑定代码总是比动态绑定代码运行得更快(即使差异变得相当小)
- 静态绑定代码提供了更多编译时支持,而不仅仅是错误:您可以找到调用层次结构,重构会更好,智能感知可用等
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)