比较nullable(布尔值)

Luk*_*asz 8 vb.net nullable

我试图nullable(of boolean)在VB.NET 2010中比较两个类型的变量.其中一个变量的值为False,另一个变量为Nothing.现在我期待以下表达式评估为true,但事实并非如此:

Dim var1 as nullable(of boolean) = False
Dim var2 as nullable(of boolean)
var2 = Nothing

If var1 <> var2 Then
 msgbox "they are different"
End If
Run Code Online (Sandbox Code Playgroud)

为什么我看不到我的MsgBox?我应该如何比较两个nullables(布尔值)?

Ale*_* K. 24

你可以使用Nullable.Equals:

指示两个指定的对象是否相等.Nullable(Of T)

If Not Nullable.Equals(var1, var2) Then
    MsgBox("they are different")
End If
Run Code Online (Sandbox Code Playgroud)


GSe*_*erg 5

这是因为在 VB.NET 中

Console.WriteLine(False = Nothing)
Run Code Online (Sandbox Code Playgroud)

打印True

这与可空性无关。