VarIsEmpty 和 VarIsEmptyParam 函数有什么区别
刚刚在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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 COM 中,方法调用中的任何位置都可以有可选参数,而在 Delphi 中,这只可能在最后。因此,如果您想省略该参数,可以编写
EmptyParam
来代替。EmptyParam
是一个使用正确值初始化的全局变量。现在,当您实现 COM 接口时,您还必须处理这些可选参数。找出这些被省略的参数的方法是
VarIsEmptyParam
。请注意,即使作为参数给出的空变体也会产生 VarIsEmptyParam = false,因为不会省略该参数。它只是空的,但它就在那里。
所以通常有:
和
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:
and