TryParse为什么如果值为零会失败?

时间:2016-06-25 15:45:50

标签: vb.net

Dim s as string = "0"
Dim valid as boolean = false
Byte.TryParse(s, valid)

如果值为零,为什么TryParse会失败?它也发生在Int32.TryParse等。

1 个答案:

答案 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)