Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Операторы сравнения сравнивают два выражения и возвращают 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".