Vb.net 比较可为空的(布尔值)
我试图在VB.NET 2010中比较两个类型为Vb.net 比较可为空的(布尔值),vb.net,nullable,Vb.net,Nullable,我试图在VB.NET 2010中比较两个类型为nullable(布尔值)的变量。其中一个变量的值为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
nullable(布尔值)
的变量。其中一个变量的值为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
Dim var1可为空(属于布尔值)=False
Dim var2可为空(布尔值)
var2=无
如果var1 var2那么
msgbox“它们是不同的”
如果结束
为什么我看不到我的MsgBox?我应该如何比较两个可空变量(布尔值)?我认为可空变量具有Value和HasValue属性。 基本上你必须说:
If (var1.HasValue And var2.HasValue) And (var1.Value <> var2.Value) Then
'
End If
If(var1.HasValue和var2.HasValue)和(var1.Value var2.Value)则
'
如果结束
我已经很久没有写VB了。我是一个典型的C#guy。不过,上述概念是正确的。这是因为在VB.NET中
Console.WriteLine(False = Nothing)
打印True
这与可空性无关。您可以使用:
指示两个指定的Nullable(Of T)
对象是否相等
如果var1为null,但var2有一个值,则此代码不会执行此任务。显示消息框的正确方法是MsgBox(“它们不同”),啊,比布尔值好得多?毫无意义。
If Not Nullable.Equals(var1, var2) Then
MsgBox("they are different")
End If