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
В предыдущем примере вычисляется True
значение x Is y
, так как оба переменных ссылаются на один и тот же экземпляр. Сравните этот результат со следующим примером.
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
В предыдущем примере вычисляетсяFalse
, x Is y
так как переменные ссылаются на объекты одного типа, они ссылаются на разные экземпляры этого типа.
Если вы хотите проверить наличие двух объектов, не указывающих на один и тот же экземпляр, 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
указании типа интерфейса выражение ...Is
возвращаетсяTrue
, TypeOf
если объект реализует тип интерфейса. Если 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
В предыдущем примере выражение вычисляется True
из-за типа Button
x
, который наследует от Control
.TypeOf x Is Control
Дополнительные сведения см. в разделе "Оператор TypeOf".