C#中“dynamic”关键字的目的是什么,为什么我想要或不想要它??
答案 0 :(得分:6)
在静态类型的世界中,动态为开发人员提供了很多可以自行解决的问题。处理在编译时可以知道类型的对象时,应该不惜一切代价避免使用dynamic关键字。静态打字时,动态不会形成一种感觉。如果您正在处理未知或动态类型,通常需要通过Reflection与其进行通信。反射代码不易阅读,并且具有上述动态类型的所有缺陷。在这种情况下,动态很有意义。
在引擎盖下,动态类型编译为包装反射代码,除非对象是COM对象(在这种情况下,操作通过IDispatch动态调用)或对象实现IDynamicObject,IronPython和IronRuby广泛使用以及即将推出的API。
更多MSDN
答案 1 :(得分:4)
引入它是为了更容易与动态语言互操作。
就个人而言,我不建议使用它,除非您要与动态编写的代码接口,或者您有非常具体的理由。