-1

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

4

2 回答 2

6

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

在底层,动态类型编译为封装的反射代码,除非对象是 COM 对象(在这种情况下,操作通过 IDispatch 动态调用)或对象实现 IDynamicObject,IDynamicObject 被 IronPython 和 IronRuby 广泛使用,并且在即将到来的 API。

更多在MSDN

于 2012-06-15T06:32:25.637 回答
4

引入它是为了更容易与动态语言进行互操作。

就个人而言,我不建议使用它,除非您要与动态编写的代码进行交互,或者如果您有非常具体的理由这样做。

于 2012-06-15T06:31:36.880 回答