You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中用dynamic调用Contains方法时,会使用反射还是自动类型转换?

问题解答

这段代码里,C#既不会通过反射获取Contains方法,也不是先把dynamic手动转换为string再调用方法,而是通过**动态语言运行时(DLR)**在运行时进行延迟绑定:

  • 编译阶段,编译器不会对dynamic类型的代码做类型检查,只会生成一个占位的调用点。
  • 运行时,DLR会先确定target和arg的实际类型(这里都是string),然后直接找到string.Contains(string)这个方法并调用,整个过程和直接写((string)target).Contains((string)arg)的执行逻辑一致,但DLR会自动完成类型的解析匹配,不需要手动显式转换。

简单来说,DLR会在运行时识别出变量的真实类型,然后直接调用该类型的对应方法,并非依赖反射机制。

内容的提问来源于stack exchange,提问作者Jiang Tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:03:13