2012-06-15 34 views
-2

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

+0

你的意思主要_purpose_?这可能是为了缓解COM互操作(就像其他功能,如命名和可选参数),但我没有任何规范的来源,虽然我记得读过它。我相信Google博士可以帮忙。 –

+0

很有意思。为什么两个投票反对?我的问题出了什么问题? –

+0

@BehnamEsmaili - 不是我的失望,但很可能是因为已经有几篇关于这个的帖子。 –

回答

4

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

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

更多的MSDN

+0

感谢您的回复。 –

+0

@Jaguar Hallu Hallu –

3

它被引入允许与动态语言进行更简单的互操作。我个人不推荐使用它,除非你打算用动态编写的代码进行接口,或者如果你有一个非常具体的理由要做。

+0

。 –

相关问题