动态类型
dynamic
关键字声明一个在编译时未知类型的变量。dynamic
变量可以包含任何值,并且值的类型可以在运行时更改。
正如“.NET 中的元编程”一书所述,C#没有 dynamic
关键字的支持类型:
dynamic
关键字启用的功能是一组聪明的编译器操作,它们在本地执行范围的站点容器中发出和使用CallSite
对象。编译器管理程序员通过那些CallSite
实例感知的动态对象引用。在编译时获得动态处理的参数,返回类型,字段和属性可以用一些元数据标记,以指示它们是为动态使用而生成的,但它们的基础数据类型将始终为System.Object
。