6

CORBA IDL 函数参数中的 in、out 和 inout 究竟是什么意思?

4

1 回答 1

9

来自 Ciaran McHale 的免费在线书籍,CORBA 简单解释

一个操作的参数有一个指定的方向,可以是in (表示参数从客户端传给服务端),out (参数从服务端传回客户端)或者inout (参数双向传)。

因此,in参数与“传统”函数参数非常相似,因为调用者必须为它们传递一个值,并且服务器使用该值来完成其工作。

out参数就像一个返回值,所以调用者永远不会用一个值填充它。它只是在函数返回时神奇地具有一个值(假设没有抛出异常),因为服务器负责将一个值放入其中作为其执行规则的一部分。您可以拥有任意数量的out参数,允许您返回多个不同的对象或值,而无需先将它们组合成struct.

参数结合了inout上述两个概念。调用者必须使用有效数据填充所有inout参数,但在函数返回后这些值可能会有所不同,因为服务器可以自由地将新数据放入其中。

于 2011-06-07T14:29:03.857 回答