7

刚才在Delphi7工作,发现里面不仅有一个VarIsEmpty函数,还有一个VarIsEmptyParam.

由于Delphi的帮助没有给出太多解释:

如果给定的变体表示未分配的可选参数,则 VarIsEmptyParam 返回 true。

如果变体包含任何其他值,则函数结果为假。

我只是想知道是否有人使用过这个功能,如果有,这个功能是如何使用的。

4

1 回答 1

8

在 COM 中,方法调用中的任何位置都可以有可选参数,而在 Delphi 中,这只能在最后才有可能。因此,如果您想省略参数,您可以EmptyParam改为编写。EmptyParam是一个用正确值初始化的全局变量。

现在,当您实现 COM 接口时,您也必须处理这些可选参数。找出这些省略的参数的方法是VarIsEmptyParam

请注意,即使是作为参数给出的空变量也会产生 VarIsEmptyParam = false,因为没有省略参数。它只是空的,但它就在那里。

所以通常有:

VarIsEmpty(v) ==> not VarIsEmptyParam(v)

VarIsEmptyParam(v) ==> not VarIsEmpty(v)
于 2010-03-08T13:46:07.200 回答