If Object.Value IsNot "Something" Then
您可以這樣做,或者是否有某些情況下無法正常工作?不知道這是否應該只用於整數和布爾值。VB.NET不適用於字符串比較
謝謝!
If Object.Value IsNot "Something" Then
您可以這樣做,或者是否有某些情況下無法正常工作?不知道這是否應該只用於整數和布爾值。VB.NET不適用於字符串比較
謝謝!
我不確定這是否有效,但如果這樣做,它會是一個非常糟糕的主意使用。 VB.Net中的Is
和IsNot
運算符做參考比較。在處理String
值時,您幾乎總是希望通過=
和<>
進行值比較。
參考比較會告訴您它是否字面上指向同一個對象。在.NET中它很可能爲同一相同字符串中2個對象,允許混淆的情況下,如以下
Function CreateFoo() As String
return "foo"
End Function
Dim str1 = "foo"
Dim str2 = CreateFoo()
if str1 Is str2 Then
' This is possible
Else
' This is also possible
End If
值比較捕獲提供了更多的理智在這裏
Dim str1 = "foo"
Dim str2 = CreateFoo()
if str1 = str2 Then
' This will run
Else
' This is simply not possible
End If
這會告訴你Object.Value和「Something」是否是字面上相同的對象。
99.999%的時間,你不關心這一點。你所關心的只是它們在語義上是否相等,也就是說它們都包含「Something」這個詞。
從文檔:「 IsNot運算符確定兩個對象引用是否引用不同的對象。「
因此,您不希望比較字符串,因爲兩個相同的字符串實際上不可能引用同一個對象。這隻會發生在編譯時常量,被執行或同一變量的兩個副本。