在Visual Basic 6.0中将感叹号(!
)放在对象引用变量前面会有什么作用?
例如,我在代码中看到以下内容:
!RelativePath.Value = mstrRelativePath
!
是什么意思?
答案 0 :(得分:45)
几乎可以肯定是在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中删除。
答案 1 :(得分:7)
感叹号似乎充当了成员访问操作符......
<击>会员访问运营商
要访问某个类型的成员,请使用
点(。)或感叹号(!)
操作者
击>
我把它拿回来。就是这样:
感叹号(!)运算符使用 !运算符只在类或 接口作为字典访问 运营商。类或接口必须 有一个接受a的默认属性 单个String参数。标识符 紧接着!操作者 成为的字符串参数 默认属性。