动态类型

dynamic 关键字声明一个在编译时未知类型的变量。dynamic 变量可以包含任何值,并且值的类型可以在运行时更改。

正如“.NET 中的元编程”一书所述,C#没有 dynamic 关键字的支持类型:

dynamic 关键字启用的功能是一组聪明的编译器操作,它们在本地执行范围的站点容器中发出和使用 CallSite 对象。编译器管理程序员通过那些 CallSite 实例感知的动态对象引用。在编译时获得动态处理的参数,返回类型,字段和属性可以用一些元数据标记,以指示它们是为动态使用而生成的,但它们的基础数据类型将始终为 System.Object