代码之家  ›  专栏  ›  技术社区  ›  Brian Rasmussen

通过dynamicobject实现void方法时的结果值

  •  3
  • Brian Rasmussen  · 技术社区  · 16 年前

    我在看重写的例子 TryInvokeMember DynamicObject 实现动态方法绑定。签名如下

    public virtual bool TryInvokeMember(
        InvokeMemberBinder binder,
        Object[] args,
        out Object result
    )
    

    明显地 result 用于将结果传递回调用方。

    因为没有过载 试音员 没有 结果 out参数,我假设这个方法也必须处理void方法。在这种情况下有什么指导方针 结果 应该设置为?

    上的默认实现 动态对象 集合 结果 为空,这也是我的默认选择,但我在示例中找不到任何关于此的内容。有什么指导方针吗?结果是什么有关系吗?

    2 回复  |  直到 16 年前
        1
  •  4
  •   Community Mohan Dere    9 年前

    是的,在这种情况下使用null。

    以前这里也有类似的问题: How do I express a void method call as the result of DynamicMetaObject.BindInvokeMember? 这一个是关于idynamicmetaobjectprovider的,但是dynamicobject只是它的实现之一。很快,DLR总是会返回一些东西,它不允许返回空值。

    我会看看我能对MSDN文档做些什么。我可以在 DynamicObject.TryInvokeMember .

        2
  •  0
  •   Thomas Levesque    16 年前

    我想没关系,反正结果会被忽略的…

    推荐文章