Операторы сравнения в Visual Basic

Обновлен: Ноябрь 2007

Операторы сравнения сравнивают два выражения и возвращают логическое значение 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 (Visual Basic) с тем же успехом, что и для числовых операторов сравнения. Оператор 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.

Если в одной строке префикс отличается, например "аа" и "ааа", то та строка, которая длиннее, считается больше той строки, которая короче. Это показано в приведенном ниже примере.

"aaa" > "aa"

' The result of the preceding comparison is True.

Порядок сортировки основан на двоичном сравнении или текстовом сравнении в зависимости от настройки Option Compare. Дополнительные сведения см. в разделе Оператор Option Compare.

Сравнение объектов

В Visual Basic сравниваются две ссылочные переменные объекта с использованием Оператор Is (Visual Basic) и Оператор 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 (Visual Basic).

См. также

Основные понятия

Сравнения значений

Арифметические операторы в Visual Basic

Операторы объединения в Visual Basic

Логические и побитовые операторы в Visual Basic

Ссылки

Операторы сравнения (Visual Basic)

Другие ресурсы

Операторы (Visual Basic)