Поделиться через


Операторы сравнения в 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".

См. также