Comparison Operators in Visual Basic
比較運算子可比較兩個運算式,並傳回代表其值關聯的 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 運算子。