我与一些旧代码工作,它定义了这样一个全局变量...VB6中未设置变量的默认值是多少?
Public myvar
该变量从未赋值,但后来在测试中使用...
If myvar <> somevalue then
'do something
End If
什么值的某些东西会被做?
我与一些旧代码工作,它定义了这样一个全局变量...VB6中未设置变量的默认值是多少?
Public myvar
该变量从未赋值,但后来在测试中使用...
If myvar <> somevalue then
'do something
End If
什么值的某些东西会被做?
Empty
。Empty
,0
或""
...
当变量被初始化,一个 数值变量被初始化为0, 一个可变长度的字符串是 初始化为零长度字符串 (” “),并且一个固定长度的字符串是 填充了零。变量变量 被初始化为空。用户定义类型变量的每个元素 初始化为 ,就好像它是单独的 变量。
从Get the most out of Variants in VB6我会做一个假设,如果myvar
不是“”,然后do something
。我不确定,现在无法检查,但可以自己检查。
当一个变种已宣告但 未分配的值,它包含了 特殊值空。您可以测试与IsEmpty函数
这...
如果 一个空的变体在 表达式中使用,就被当作要么 值为0或取决于表达一个空字符串 。
如果内存服务,如果`someValue`的值为Nothing,或者是默认属性产生Nothing的对象等,则上面的代码会崩溃,因为不等于运算符会比较注意`someValue`的类型是`Object`,尝试获取它的默认属性,然后尝试比较它(如果需要,则获取的默认属性等)。由于试图获取默认属性“Nothing `会失败,代码会崩溃。 – supercat 2012-11-21 19:18:13
@supercat问题说“这个变量永远不会被分配一个值”。因此,因为这是VB6它将包含空(与Nothing不同)。因此,除了Empty,0或“” – MarkJ 2012-11-21 20:15:00