比較運算符會比較兩個 Boolean
表達式,並傳回代表其值關聯性的值。 有比較數值的運算符、比較字串的運算符,以及比較對象的運算元。 這裡將討論這三種類型的運算元。
比較數值
Visual Basic 會使用六個數值比較運算符來比較數值。 每個運算子都會接受兩個評估為數值的表達式。 下表列出運算符,並顯示每個運算子的範例。
操作員 | 已測試條件 | 範例 |
---|---|---|
= (平等) |
第一個表達式的值是否等於第二個表達式的值? |
23
=
33 ' False
23
=
23 ' True
23
=
12 ' False
|
<> (不平等) |
第一個表達式的值是否與第二個表達式的值不相等? |
23
<>
33 ' True
23
<>
23 ' False
23
<>
12 ' True
|
< (小於) |
第一個表達式的值是否小於第二個表達式的值? |
23
<
33 ' True
23
<
23 ' False
23
<
12 ' False
|
> (大於) |
第一個表達式的值是否大於第二個表達式的值? |
23
>
33 ' False
23
>
23 ' False
23
>
12 ' True
|
<= (小於或等於) |
第一個表達式的值是否小於或等於第二個表達式的值? |
23
<=
33 ' True
23
<=
23 ' True
23
<=
12 ' False
|
>= (大於或等於) |
第一個表達式的值是否大於或等於第二個表達式的值? |
23
>=
33 ' False
23
>=
23 ' True
23
>=
12 ' True
|
比較字串
Visual Basic 會使用 Like 運算符 和數值比較運算符來比較字串。 運算子 Like
可讓您指定模式。 字串接著會與模式進行比較,如果符合,則結果為 True
。 否則,結果為 False
。 數值運算符可讓您根據值的排序順序來比較 String
值,如下列範例所示。
"73" < "9"
' The result of the preceding comparison is True.
上述範例的結果是因為 True
第一個字串中的第一個字元會在第二個字元串中的第一個字元之前排序。 如果第一個字元相等,則會繼續比較這兩個字串中的下一個字元,如此依序進行。 您也可以使用相等運算符來測試字串是否相等,如下列範例所示。
"734" = "734"
' The result of the preceding comparison is True.
如果某個字串是另一個字串的前置詞,例如 「aa」 和 「aaa」,則會將較長的字串視為大於較短的字串串。 下列範例說明這點。
"aaa" > "aa"
' The result of the preceding comparison is True.
排序順序是以二進位比較或文字比較為基礎,視的 Option Compare
設定而定。 如需詳細資訊,請參閱 Option Compare 語句。
比較物件
Visual Basic 會使用 Is 運算子 和 IsNot 運算子 來比較兩個物件參考變數。 您可以使用其中一個運算符來判斷兩個參考變數是否參考相同的物件實例。 下列範例說明這點。
Dim x As testClass
Dim y As New testClass()
x = y
If x Is y Then
' Insert code to run if x and y point to the same instance.
End If
在上述範例中, x Is y
會評估為 True
,因為這兩個變數都參考相同的實例。 將此結果與下列範例形成對比。
Dim x As New customer()
Dim y As New customer()
If x Is y Then
' Insert code to run if x and y point to the same instance.
End If
在上述範例中, x Is y
會評估為 False
,因為雖然變數參考相同類型的物件,但它們參考該類型的不同實例。
當您想要測試兩個物件是否沒有指向相同的實例時,IsNot
運算符可以幫助您避免需要使用Not
和Is
的語法上較為笨拙的組合。 下列範例說明這點。
Dim a As New classA()
Dim b As New classB()
If a IsNot b Then
' Insert code to run if a and b point to different instances.
End If
在上述範例中, If a IsNot b
相當於 If Not a Is b
。
比較物件類型
您可以測試物件是否為具有 TypeOf
...Is
表達式的特定類型。 語法如下所示:
TypeOf <objectexpression> Is <typename>
當 typename
指定為介面類型時,若物件實作該介面類型,則TypeOf
... Is
表達式會傳回True
。 當 typename
是類別類型時,如果物件是指定類別的實體或衍生自指定類別的類別,則表示式會傳回 True
。 下列範例說明這點。
Dim x As System.Windows.Forms.Button
x = New System.Windows.Forms.Button()
If TypeOf x Is System.Windows.Forms.Control Then
' Insert code to run if x is of type System.Windows.Forms.Control.
End If
在上述範例中,TypeOf x Is Control
表達式會評估為 True
,因為 x
的型別是 Button
,且其繼承自 Control
。
如需詳細資訊,請參閱 TypeOf 運算符。