VarIsEmpty和VarIsEmptyParam函数之间有什么区别

时间:2010-03-08 13:09:52

标签: delphi delphi-7 variant

刚才在Delphi7工作,我注意到不仅存在VarIsEmpty函数,还存在VarIsEmptyParam

由于德尔福的帮助没有给出太多解释:

  

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

     

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

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

1 个答案:

答案 0 :(得分:8)

在COM中,可以在任何位置的方法调用中使用可选参数,而在Delphi中,这只能在结束时使用。因此,如果您想省略参数,可以改为编写EmptyParamEmptyParam是使用正确值初始化的全局变量。

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

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

通常有:

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

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