- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我如何更改此代码段以正确添加 A
的实例到 List<A>
, B
到 List<B>
等等?
// someChild's actual type is A
object someChild = GetObject();
// collection's actual type is List<A> though method below returns object
dynamic list = GetListFromSomewhere(...);
// code below throws a RuntimeBinderException
list.Add(somechild);
抛出异常是因为,Add()
被 Binder 找到,传入dynamic
无法解决重载问题。我希望不要更改以上内容以使用反射,或者至少将其最小化。我确实有权访问 System.Type
的实例对于每个 A
和 List<A>
.包含上述代码的类或方法本身不是通用的。
最佳答案
所有你需要的是使参数的绑定(bind)也动态 - 所以你只需要someChild
的类型是dynamic
:
dynamic someChild = GetObject();
dynamic list = GetListFromSomewhere(...);
list.Add(somechild);
在您之前的代码中,编译器会记住someChild
的编译时类型是object
,因此使用了编译器-time 类型而不是执行时间类型。执行时绑定(bind)器很聪明,只动态处理动态表达式以解决重载问题。
关于c# - 如何将 T 添加到 List<T> 中,其中 List<T> 伪装成 'dynamic' 而 T 伪装成 'object' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911564/
Urllib 1. Urllib.request.urlopen().read().decode() 返回一个二进制的对象,对这个对象进行read()操作,可以得到一个包含网页的二进制字符串,然
我想知道是否有一种解决方案可以存储,尤其是将数据伪装成音乐/声音(这样,转换成另一种音乐格式[mp3]时就不会太麻烦)? 回顾过去,我偶然发现了一种将任何数据保存到图片中的工具。它不仅将数据添加到文件
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我刚刚问了这两个问题,一个在 flash seo url best practices 上和一个 url redirects for seo in flash ,它让我阅读了更多关于 cloaking
好的,我正在使用基于 WebView 的 native OSX 应用程序进行一些实验,我想知道: 为了完全伪装它需要哪些必要的步骤? (所以,用户 - 好吧,实际上是一个非技术用户)不可能理解它是一个
是否可以使用javascript返回屏蔽域名而不是实际域名。 化名 www.masked.com 网站真实名称 www.real.com window.location.href 和 document
我希望能够使用我的 Web 服务器作为 Usenet“代理”,如何配置 iptables 来正确转发数据包? 我的 Usenet 客户端将连接到我的 Web 服务器,Web 服务器将连接到 Usene
我有一个问题:伪装。 我有一个 friend 在加拿大和英国做生意。 目前 .ca 站点托管在 Godaddy 上。 co.uk 域已在 domainmonster 上注册(使用英国 IP 地址),并
我是一名优秀的程序员,十分优秀!