CSharp - 为什么在 VB.Net 和 C# 中的值检查null时存在差异?

  显示原文与译文双语对照的内容
107 0

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");
}

为什么有什么区别?

时间:原作者:0个回答

...