c# - 匿名类型与动态类型

标签 c# .net dynamic anonymous-types

c# 3.0 中的匿名类型(var)与 c# 4.0 中的动态类型(dynamic)之间的真正区别是什么?

最佳答案

匿名类型是为您创建的真实的、编译器生成的类型。这样做的好处是编译器可以稍后将这种类型重新用于需要它的其他操作,因为它是 POCO。

我对动态类型的理解是它们是后期绑定(bind)的,这意味着 CLR(或 DLR)将在执行时评估对象,然后使用鸭子类型来允许或禁止成员访问对象。

所以我想区别在于匿名类型是编译器可以看到但您只能使用的真正 POCO,而动态类型是后期绑定(bind)的动态对象。

关于c# - 匿名类型与动态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/391529/

相关文章:

c# - 为什么从投影创建的整数变量不能递增?

.net - 以编程方式编辑 Web 服务的端点

c# - 如何为通用列表 orderby 函数创建委托(delegate)?

c# - RDLC LocalReport 导出到 Excel 真的很慢

c# - RavenDB 自动 tmpindex 和手动索引

c# - 从类中加载一个 .DLL 文件和访问方法?

在 Chrome 中调试从 TypeScript 生成的动态加载的 Javascript

c# - Visual Studio 2015 测试运行器中的 "The handle is invalid"异常

c++ - 这两种动态扩展数组的方法有什么区别?

dynamic - 如何以编程方式使用 CRM 中的字段创建新实体