Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net C中“dynamic”关键字的用途是什么?_.net_C# 4.0 - Fatal编程技术网

.net C中“dynamic”关键字的用途是什么?

.net C中“dynamic”关键字的用途是什么?,.net,c#-4.0,.net,C# 4.0,在C中,dynamic关键字的用途是什么?为什么我想要或不想要使用它?引入它是为了更方便地与动态语言进行互操作 就我个人而言,我不建议使用它,除非您要使用动态编写的代码进行接口,或者如果您有非常具体的理由这样做。在静态类型的世界中,动态为开发人员提供了很多束缚。在处理编译时可以知道其类型的对象时,应该不惜一切代价避免使用dynamic关键字。当静态输入时,动态没有任何意义。如果您正在处理未知或动态类型,则通常需要通过反射与之通信。反射代码不容易阅读,并且具有上述动态类型的所有缺陷。在这种情况下,

在C中,dynamic关键字的用途是什么?为什么我想要或不想要使用它?

引入它是为了更方便地与动态语言进行互操作


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

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

在后台,动态类型编译为封装的反射代码,除非该对象是COM对象,在这种情况下,操作通过IDispatch动态调用,或者该对象实现IDynamiObject,IronPython和IronRuby广泛使用IDynamiObject,并且在即将推出的API中也有使用


更多关于

您是指主要目的吗?这可能是为了简化COM互操作,就像其他功能一样,比如命名参数和可选参数,但我没有任何规范性的来源,尽管我记得读过它。我相信谷歌博士能帮上忙。很有意思。为什么两次反对票?我的问题有什么问题?@BehnamEsmaili-不是我的反对票,但很可能是因为已经有好几篇关于这一点的帖子了。@BehnamEsmaili可能你应该先有RTFM,然后问一个关于什么不清楚的问题。谷歌搜索动态关键词c在前4、2篇MSDN文章和Scott Hanselman的一篇博客中产生;看一眼这些。@Lieven谢谢你的回答。但我不同意否决票,因为重复的问题。我在这里多次看到这句话……无论如何,谢谢。谢谢你的回答。也谢谢你的回答。也许捷豹的答案更完整。