我来自面向对象的背景.为什么"Test"(注意引号)显示在此代码片段中(在消息框中).我期望逻辑测试:'如果Test ="True"'返回False,因为变体包含布尔值而不是字符串.因此,我不希望消息框出现,但它确实:
Dim Test As Variant
Test = True
If Test = "True" Then //line 5
MsgBox ("Test")
End If
Run Code Online (Sandbox Code Playgroud)
VariantVB6中的类型值(以及支持它们的大多数其他语言)根据需要自动在数据类型之间进行转换; 它们在COM交互中被广泛使用.
您正在使用的代码使用从布尔到字符串的自动(隐式)转换:
if Test = "True"
Run Code Online (Sandbox Code Playgroud)
之后使用它作为原始分配类型(布尔值)
Test = True
Run Code Online (Sandbox Code Playgroud)
但是,在这里,你根本就没有使用变体; 你正在使用硬编码的字符串"Test".
| 归档时间: |
|
| 查看次数: |
8532 次 |
| 最近记录: |