2016-06-25 7 views
-5
Dim s as string = "0" 
Dim valid as boolean = false 
Byte.TryParse(s, valid) 

値がゼロの場合、TryParseはなぜ失敗しますか? Int32.TryParseなどでも発生します。TryParse値がゼロの場合、なぜ失敗しますか?

+0

これもオプションStrict' – derloopkat

+0

これはコンパイルすらないと失敗しませんか?しばらくVB.NETから離れていますが、これはC#でコンパイルされません! 'valid'は、これをc#でコンパイルするには' byte'型でなければなりません。 – Plutonix

+2

'の下でコンパイル習慣 – user3185569

答えて

3

変数Booleanに値Byteを解析しています。 VB.NETはそれを(私は残念なことに)と言うでしょうし、自動的にByteBooleanに変換します。問題はByteの値が0であると考えられ、Boolean(0以外の値はtrueと見なされます)に変換された場合、falseとみなされます。そして、それはあなたが見ているものです。あなたが本当にそれを望んで何

Dim s as String = "0" 
Dim value as Byte 
Dim valid as Boolean = Byte.TryParse(s, value) 
関連する問題