の整数にブールに変換:これは次のように出力さ次のコードくださいVB.NET
Sub Main()
Dim i As Integer
Dim b As Boolean
i = 1
b = i
i = b
Console.WriteLine(i)
i = Convert.ToInt32(b)
Console.WriteLine(i)
End Sub
を:
-1
1
これはなぜですか?
として(ジャストジョーク:)あなたは0があまりにも...
Int32.TryParse("True", i)
Console.WriteLine(i)
WHY VT_BOOLが使用された理由と値が-1である理由について、いくつか追加したいことがあります。 VB 6には、論理演算とビット演算の両方を行う "and"演算子と "or"演算子が1セットしかありませんでした(ほとんどの言語は2セットあります)。 これは "and"を "&"として実装し、リテラルのデフォルトを-1にすることで機能しました。 –
"真とx"は "x"がゼロでないときはいつでも非ゼロです。 –
ここでは、ほとんど関係のない質問に対する私の答えで「なぜ」の感覚を得ることができます:https://stackoverflow.com/a/46331671/3043 –