我正在将 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 行,我可以看出它正在检查字节数组的最后两个字符中的 BOM,但第一个检查是b(UBound(b) - 2) >= 0
做什么的?一个字节不可能是负数吗?