【发布时间】:2011-01-21 09:13:06
【问题描述】:
我收到以下类型不匹配错误
IF obj.propery THEN
...
END IF
我使用的代码在视觉源上是安全的,当其他开发人员运行相同的项目时,代码运行时没有错误。该属性实际上是一个字符串,这可能是问题所在。当我调试和测试属性时,即
?obj.propery = True
没有抛出错误,这有点奇怪。如果我将光标放在属性上,它会显示“True”。我对此事进行了一些搜索,发现这可能与 OPTION STRICT 有关,但是我的代码版本与其他开发人员相同,并且 OPTION STRICT 没有关闭,它没有被改变在代码中。是否有任何其他设置可能会影响代码在运行时的执行?
【问题讨论】:
-
VB 6 中没有
Option Strict。您所做的搜索可能已经找到了与VB.NET 相关的资源。呃,其他开发人员可能正在使用 VB.NET,不是吗? -
声明'obj'的类型是什么?
-
obj 是自定义类型,property 是字符串属性。
-
我原来的答案显然是不正确的。现在,当使用 if 语句测试值时,我可以重现 VB 6 将值“true”/“True”或“false”/“False”的
String强制转换为Boolean。尽管这对我来说很痛苦,但它似乎是现实。如果字符串设置为 other 而不是这两个值,您当然仍然会收到编译器错误。您可以尝试在您的 VB 6 副本中创建一个全新的项目,并查看它是否与从更大的代码库中提取的相同的事情?
标签: vb6 type-mismatch