这个问题源于这里。我在 VS 中尝试了这个语句,看看会发生什么:
Len(Name <= 3)
根据这个答案和这个答案,布尔值应该消耗 4 个字节。根据 MSDN,VB 中的 Len 函数
返回一个整数,其中包含字符串中的字符数或存储变量所需的标称字节数。
Name <= 3
应该将 3 转换为 String 并执行字符串比较,返回一个布尔值,所以Len
应该计算其中的字节数,应该是 4。出于某种原因,上面的代码返回 2,不管第二个参数。换句话说,Len(True)
也返回 2。尝试了不同的平台目标(32 和 64)——同样的事情。
为什么Len(Boolean)
返回 2 而不是 4?