VB6 Variant类型

时间:2012-04-18 22:09:21

标签: vb6

我来自面向对象的背景。为什么“Test”(注意引号)显示在此代码片段中(在消息框中)。我期望逻辑测试:'如果Test =“True”'返回False,因为变体包含布尔值而不是字符串。因此,我不希望消息框出现,但确实如此:

Dim Test As Variant

Test = True

If Test = "True" Then //line 5
    MsgBox ("Test")
End If

2 个答案:

答案 0 :(得分:8)

VB6中的

Variant类型值(以及支持它们的大多数其他语言)根据需要自动在数据类型之间进行转换;它们在COM交互中被广泛使用。

您正在使用的代码使用从布尔到字符串的自动(隐式)转换:

if Test = "True"

使用后,因为它是原始分配的类型(布尔值)

Test = True

但是,在这里,你根本就没有使用变体;您正在使用硬编码字符串"Test"

答案 1 :(得分:0)

他们解释为什么在MessageBox中出现Test这个词是因为你在消息框中显示字符串“Test”

MsgBox ("Test")

你应该使用这个

MsgBox (Test)