Dim s as string = "0"
Dim valid as boolean = false
Byte.TryParse(s, valid)
如果值为零,为什么TryParse
会失败?它也发生在Int32.TryParse
等。
答案 0 :(得分:3)
您正在将Byte
值解析为Boolean
变量。 VB.NET将允许您这样做(我不幸地说)并自动将Byte
转换为Boolean
。转换为Byte
时,问题0
false
的值被视为Boolean
(任何非0值都将被视为true
)。这就是你所看到的。
你真正想要它:
Dim s as String = "0"
Dim value as Byte
Dim valid as Boolean = Byte.TryParse(s, value)