gpt4 book ai didi

c# - 新的 'dynamic' C# 4.0 关键字是否弃用了 'var' 关键字?

转载 作者:IT王子 更新时间:2023-10-29 04:15:11 24 4
gpt4 key购买 nike

当 C# 4.0 发布时,我们有了动态关键字,如 excellent presentation by Anders Hejlsberg 中所述,(C# 的发展速度快到我跟不上了。我没有太多时间来熟悉 var 关键字)

我还需要 var 关键字吗?有什么是 var 可以做的...而 dynamic 不能做的吗?

var x = SomeFunctionThatIKnowReturnsSomeKindOfList();
// do something with x

dynamic x = SomeFunctionThatIKnowReturnsSomeKindOfList();
// do something with x

最佳答案

不,它们非常不同。

var 的意思是“在编译时推断变量的类型”——但它仍然是完全静态绑定(bind)的。

dynamic 的意思是“假设我可以用这个变量做任何我想做的事”——即编译器不知道有哪些操作可用,DLR 会计算出调用的内容 在执行时的意思。

我希望很少使用 dynamic - 只有当我真正想要动态行为时才使用:

  • var 让您在编译时捕捉拼写错误等
  • 静态绑定(bind)代码总是比动态绑定(bind)代码运行得更快(即使差异变得相当小)
  • 静态绑定(bind)代码提供了更多的编译时支持,而不仅仅是错误:您可以找到调用层次结构、重构会更好地工作、Intellisense 可用等

关于c# - 新的 'dynamic' C# 4.0 关键字是否弃用了 'var' 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/298277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com