vb6 – 在对象引用变量前面放置感叹号(!)是什么?

在Visual Basic 6.0中,将一个感叹号(!)放在一个对象引用变量前面呢?

例如,我在代码中看到以下内容

!RelativePath.Value = mstrRelativePath

什么是!意思?

一个With块里几乎肯定是一个声明:
With blah
    !RelativePath.Value = mstrRelativePath
  End With

这是语法糖

blah("RelativePath").Value = mstrRelativePath

这是语法糖

blah.DefaultProperty("RelativePath").Value = mstrRelativePath

其中“DefaultProperty”是具有由字符串索引dispid零的属性。像ADO Recordset对象的Fields属性一样。

有一点不可避免的糖是它产生烂牙。这就是你必须在VB6和VBA中使用Set关键字的原因。因为没有它,编译器不知道你是要复制对象引用还是对象的属性值。在vb.net中消除。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...