gpt4 book ai didi

c# - 为什么在 C# 中使用动态类型?

转载 作者:太空狗 更新时间:2023-10-29 18:00:48 25 4
gpt4 key购买 nike

一开始我是这样想的:

var aName=getAllSomethings();

非常不可读,所以我会在没有混淆余地的情况下使用动态类型,例如:

AClassName aName = new AClassName();

这里,

var aName=new AClassName();

看起来可读。但是比我读到的 ( here ) 动态类型也有性能的代价。
我尝试阅读该链接中的所有其他帖子以了解我应该在何处使用动态类型,但无法想出一个很好的理由。我是否应该等待我告诉自己 - “这只能通过动态类型来解决”?或者有更好的(实际的)使用理由吗?

谢谢。

编辑:我的错误(-:将尽快关闭此问题。

最佳答案

var 不是动态类型。只是 aName 的类型是由编译器推断出来的。

您的示例仍然是完全静态类型的,并且没有性能损失。您的代码被编译成与使用显式类型名称时完全相同的 IL。

现在在 C# 4 中,动态类型确实存在,但它会写成:

dynamic aName = new AClassName();

我个人认为,动态类型相对在 C# 4 中很少有用——基本上当您处理已经仅动态已知的数据时,例如反射,或导航 XML。

关于c# - 为什么在 C# 中使用动态类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3647824/

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