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 Operator 和 IsNot Operator 比较两个对象引用变量。 可以使用其中任一运算符来确定两个引用变量是否引用同一对象实例。 下面的示例对此进行了演示。
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 运算符。