在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中消除。