C#学习教程:C#4:确定动态调用中的参数传递语义分享


C#4:确定动态调用中的参数传递语义

在C#4中,当从DynamicObject派生并覆盖TryInvokeMember时,如何确定在调用站点提供的任何参数是否已通过out或ref语义传递? 我可以在提供的binder中看到包含此​​信息的一些私有字段(即Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder.ArgumentInfo属性),但它似乎无法访问。 我认为这些信息必须在某处可用,否则会严重限制一个人对所提供输入的了解。

我和DLR团队谈过这件事。 不幸的是,答案是否定的,这些信息不适用于DynamicObject。

原因是ref / out参数非常具有C#特性。 动态对象可以在多种语言之间共享,并非所有语言都有这些符号。 DynamicObject是“按值调用”,因此您的对象可以被不同的API使用。

上述就是C#学习教程:C#4:确定动态调用中的参数传递语义分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960078.html

发表评论

邮箱地址不会被公开。 必填项已用*标注