我来自面向对象编程背景。为什么在这段代码中,“Test”(注意引号)会在消息框中显示?我期望的逻辑测试:“如果 Test =“True””将返回 False,因为变量包含布尔值而不是字符串。因此我不希望消息框出现,但它确实出现了:
Dim Test As Variant
Test = True
If Test = "True" Then //line 5
MsgBox ("Test")
End If
我来自面向对象编程背景。为什么在这段代码中,“Test”(注意引号)会在消息框中显示?我期望的逻辑测试:“如果 Test =“True””将返回 False,因为变量包含布尔值而不是字符串。因此我不希望消息框出现,但它确实出现了:
Dim Test As Variant
Test = True
If Test = "True" Then //line 5
MsgBox ("Test")
End If
Variant
类型的值在 VB6(以及大多数支持它们的其他语言中)会根据需要自动转换数据类型;它们广泛用于 COM 交互。
你正在使用的代码在此处使用了从布尔值到字符串的自动(隐式)转换:
if Test = "True"
在这里将其用作其原始分配类型(布尔值)之后
Test = True
不过在这里,你根本没有使用这个变量,你正在使用一个硬编码的字符串"Test"
。
variant
(类型根据需要更改)。 - Ken White出现“Test”单词在 MessageBox 中的原因是因为你在消息框中显示了字符串“Test”
MsgBox ("Test")
你应该使用这个
MsgBox (Test)
Call
时,不应在参数周围使用括号。 - Deanna