C#中"dynamic"关键字的用途是什么?

Beh*_*ili -1 .net c#-4.0

C#中"动态"关键字的目的是什么,为什么我想要或不想要使用它?

Jai*_*dra 6

在静态类型的世界中,动态为开发人员提供了很多可以自行处理的绳索.处理在编译时可以知道类型的对象时,应该不惜一切代价避免使用dynamic关键字.静态打字时,动态不会形成一种感觉.如果您正在处理未知或动态类型,通常需要通过Reflection与其进行通信.反射代码不易阅读,并且具有上述动态类型的所有缺陷.在这种情况下,动态很有意义.

在底层中,动态类型编译为包裹反射码,除非对象是一个COM对象(在这种情况下,操作被称为动态通过IDispatch)或对象实现IDynamicObject接口,其通过IronPython和IronRuby和也在广泛使用即将推出的API.

更多在MSDN