Tim*_*Tim 2 vb6 variable-assignment
使用遗留代码我遇到了一些奇怪的变量赋值,我不确定是合法的VB6语法,但我找不到文档来备份这种感觉.
Dim ComStart, ComEnd, CR As Boolean
ComStart = ComEnd = CR = False
Run Code Online (Sandbox Code Playgroud)
我的怀疑是
a)原始声明应该是
Dim ComStart as Boolean, ComEnd as Boolean, CR as Boolean
b)现在实施的声明不会分配任何内容ComStart.
任何答案或文件都非常感谢
你找到的代码在技术上是合法的 VB6,因为它编译和运行.但原作者很可能认为代码会做出不同的事情!有两个误解.
ComStart和ComEnd和CR的变体,而不是布尔值.=是等于运算符,而不是在C中找到的赋值运算符.
CR = False不改变的价值CR.它比较当前的CRto 值False,并进行评估,True好像CR等于False.让我们说它评估为FalseComEnd = False.同样,这不会改变它的价值ComEnd.它将它与之进行比较False,并进行评估,True好像ComEnd等于False.这次让我们说它评估为True.ComStart = True.这台价值ComStart来True所以你的原始代码
Dim ComStart, ComEnd, CR As Boolean
ComStart = ComEnd = CR = False
Run Code Online (Sandbox Code Playgroud)
创建两个变体ComStart和ComEnd一个布尔值CR,然后
CR 保持其默认值, FalseComEnd保持其默认值,EmptyComStart是False因为Empty = (Empty = False)是False.简单!...我希望遗留代码的其余部分更少,更好,是偶然的.