在 C# 4 中,当从 DynamicObject 派生并重写 TryInvokeMember 时,如何确定在调用站点提供的任何参数是否已在不带 out 或 ref 语义的情况下传递?我可以在提供的活页夹中看到一些包含此信息的私有字段(即 Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder.ArgumentInfo 属性),但它似乎无法访问。我认为这些信息必须在某个地方可用,否则它将严重限制人们对所提供输入的了解。
我与 DLR 团队讨论了此事。不幸的是,答案是否定的,此信息不适用于 DynamicObject。
原因是 ref/out 参数非常特定于 C#。动态对象可以在多种语言之间共享,但并非所有语言都有这些符号。 DynamicObject 是“按值调用”,因此您的对象可以由不同的 API 使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)