【发布时间】:2012-04-18 22:09:20
【问题描述】:
我来自面向对象的背景。为什么在此代码片段中(在消息框中)显示“测试”(注意引号)。我希望逻辑测试:'If Test = "True"' 返回 False,因为该变体包含布尔值而不是字符串。因此,我不希望出现消息框,但确实出现了:
Dim Test As Variant
Test = True
If Test = "True" Then //line 5
MsgBox ("Test")
End If
【问题讨论】:
-
您的代码尝试将逻辑是/否与编译器可以判断的“foobar”进行比较。你喜欢它以哪种方式工作?编译器是否应该生成代码以将字符串转换为布尔值然后进行比较?还是应该生成将布尔值转换为字符串的代码?当您将“True”替换为“foobar”时,您的程序不会崩溃。尝试一下。现在你知道了。
标签: vb6