我正在查看在TryInvokeMember
上覆盖DynamicObject
的示例以实现动态方法绑定。签名如下
public virtual bool TryInvokeMember(
InvokeMemberBinder binder,
Object[] args,
out Object result
)
显然result
用于将结果传递回调用者。
由于没有TryInvokeMember
out参数的result
没有重载,我假设此方法也必须处理void方法。在这种情况下,是否有关于result
应该设置的指南?
DynamicObject
上的默认实现将result
设置为null,这也是我的默认选择,但我在示例中未能找到任何提及。这有什么指导方针吗?甚至结果是什么?
答案 0 :(得分:4)
是的,在这种情况下只使用null。
之前有一些类似的问题:How do I express a void method call as the result of DynamicMetaObject.BindInvokeMember? 这个是关于IDynamicMetaObjectProvider的,但DynamicObject只是它的一个实现。不久,DLR将始终返回某些内容,但不允许返回void。
我会看到我可以对MSDN文档做些什么。我可以在DynamicObject.TryInvokeMember上添加关于此的说明。
答案 1 :(得分:0)
我认为没关系,因为无论如何结果都会被忽略......