CORBA IDL 函数参数中的 in、out 和 inout 究竟是什么意思?
问问题
6152 次
1 回答
9
来自 Ciaran McHale 的免费在线书籍,CORBA 简单解释:
一个操作的参数有一个指定的方向,可以是
in
(表示参数从客户端传给服务端),out
(参数从服务端传回客户端)或者inout
(参数双向传)。
因此,in
参数与“传统”函数参数非常相似,因为调用者必须为它们传递一个值,并且服务器使用该值来完成其工作。
out
参数就像一个返回值,所以调用者永远不会用一个值填充它。它只是在函数返回时神奇地具有一个值(假设没有抛出异常),因为服务器负责将一个值放入其中作为其执行规则的一部分。您可以拥有任意数量的out
参数,允许您返回多个不同的对象或值,而无需先将它们组合成struct
.
参数结合了inout
上述两个概念。调用者必须使用有效数据填充所有inout
参数,但在函数返回后这些值可能会有所不同,因为服务器可以自由地将新数据放入其中。
于 2011-06-07T14:29:03.857 回答