在将VB6程序转换为C#时,我遇到了以下代码块(b是字符串的字节数组,lngLen是我们正在初始化的长度指针):
If UBound(b) <= 0 Then
lngLen = UBound(b)
ElseIf UBound(b) >= 2 Then
If b(UBound(b) - 2) >= 0 And b(UBound(b) - 1) = &HFE And b(UBound(b)) = &HFF Then
lngLen = UBound(b) - 3
Else
lngLen = UBound(b)
End If
Else
lngLen = UBound(b)
End If在第4行,我可以看出它正在检查字节数组的最后两个字符中的物料清单,但是第一次检查b(UBound(b) - 2) >= 0做了什么呢?一个字节不是不可能是负的吗?
发布于 2013-06-11 18:42:04
是的,VB6字节不可能是负数。值只能为0-255作为documented here in the manual。
check b(UBound(b) - 2) >= 0将始终为True,并且可以从VB6代码中删除。不需要将检查迁移到C#。
https://stackoverflow.com/questions/17031097
复制相似问题