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


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 из-за типа Buttonx , который наследует от Control.TypeOf x Is Control

Дополнительные сведения см. в разделе "Оператор TypeOf".

См. также