VarIsEmpty 和 VarIsEmptyParam 函数有什么区别

发布于 2024-08-24 16:06:46 字数 292 浏览 7 评论 0原文

刚刚在Delphi7中工作,我注意到不仅存在一个VarIsEmpty函数,而且还存在一个VarIsEmptyParam

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

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

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

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

Working in Delphi7 just now, I noticed that not only a VarIsEmpty function exists, but also a VarIsEmptyParam.

Since the help of Delphi does not give much explanation:

VarIsEmptyParam returns true if the given variant represents an unassigned
optional parameter.

If the variant contains any other value, the function result is false.

I was just wondering if anyone has used this function, and if so, how this function is meant to be used.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜访吸血鬼 2024-08-31 16:06:46

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

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

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

所以通常有:

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

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

In COM it is possible to have optional parameters in a method call at any position, while in Delphi this is only possible at the end. So if you want to omit the parameter you can write EmptyParam instead. EmptyParam is a global variable initialized with the correct values.

Now when you are implementing a COM interface you have to deal with these optional parameters, too. The way to find out these omitted parameters is VarIsEmptyParam.

Note that even an empty variant given as a parameter yields VarIsEmptyParam = false, because the param is not omitted. It is just empty, but it is there.

So normally there is:

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

and

VarIsEmptyParam(v) ==> not VarIsEmpty(v)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文