ではVB.NET、この処理が行われます。
Dim x As System.Nullable(Of Decimal) = Nothing
Dim y As System.Nullable(Of Decimal) = Nothing
y = 5
If x <> y Then
Console.WriteLine("true")
Else
Console.WriteLine("false") '' <-- I got this. Why?
End If
しかし、C#ではこれが起こります:
decimal? x = default(decimal?);
decimal? y = default(decimal?);
y = 5;
if (x != y)
{
Debug.WriteLine("true"); // <-- I got this -- I'm with you, C# :)
}
else
{
Debug.WriteLine("false");
}
なぜ違いがあるのですか?
default(decimal?)
ではなく0を返すと思いますnull
。
null
If
条件文ブール値として評価する必要はありません ... uuuugh EDIT:だからがNothing <> Anything = Nothing
でた結果If
、負/他のルートを取って。