Vergelijkingsoperators in Visual Basic
Vergelijkingsoperatoren vergelijken twee expressies en retourneren een Boolean
waarde die de relatie van hun waarden vertegenwoordigt. Er zijn operatoren voor het vergelijken van numerieke waarden, operatoren voor het vergelijken van tekenreeksen en operatoren voor het vergelijken van objecten. Alle drie de typen operators worden hier besproken.
Numerieke waarden vergelijken
Visual Basic vergelijkt numerieke waarden met behulp van zes numerieke vergelijkingsoperatoren. Elke operator gebruikt als operanden twee expressies die resulteren in numerieke waarden. De volgende tabel bevat de operators en toont voorbeelden van beide.
Operator | Geteste voorwaarde | Voorbeelden |
---|---|---|
= (Gelijkheid) |
Is de waarde van de eerste expressie gelijk aan de waarde van de tweede? | 23 = 33 ' False 23 = 23 ' True 23 = 12 ' False |
<> (Ongelijkheid) |
Is de waarde van de eerste expressie ongelijk aan de waarde van de tweede? | 23 <> 33 ' True 23 <> 23 ' False 23 <> 12 ' True |
< (Kleiner dan) |
Is de waarde van de eerste expressie kleiner dan de waarde van de tweede? | 23 < 33 ' True 23 < 23 ' False 23 < 12 ' False |
> (Groter dan) |
Is de waarde van de eerste expressie groter dan de waarde van de tweede? | 23 > 33 ' False 23 > 23 ' False 23 > 12 ' True |
<= (Kleiner dan of gelijk aan) |
Is de waarde van de eerste expressie kleiner dan of gelijk aan de waarde van de tweede? | 23 <= 33 ' True 23 <= 23 ' True 23 <= 12 ' False |
>= (Groter dan of gelijk aan) |
Is de waarde van de eerste expressie groter dan of gelijk aan de waarde van de tweede? | 23 >= 33 ' False 23 >= 23 ' True 23 >= 12 ' True |
Tekenreeksen vergelijken
Visual Basic vergelijkt tekenreeksen met behulp van de operator Like , evenals de operatoren voor numerieke vergelijkingen. Met de Like
operator kunt u een patroon opgeven. De tekenreeks wordt vervolgens vergeleken met het patroon en als deze overeenkomt, is True
het resultaat . Anders is False
het resultaat . Met de numerieke operatoren kunt u waarden vergelijken String
op basis van hun sorteervolgorde, zoals in het volgende voorbeeld wordt weergegeven.
"73" < "9"
' The result of the preceding comparison is True.
Het resultaat in het voorgaande voorbeeld is True
omdat het eerste teken in de eerste tekenreeks sorteert voor het eerste teken in de tweede tekenreeks. Als de eerste tekens gelijk waren, wordt de vergelijking voortgezet naar het volgende teken in beide tekenreeksen, enzovoort. U kunt ook de gelijkheid van tekenreeksen testen met behulp van de gelijkheidsoperator, zoals in het volgende voorbeeld wordt weergegeven.
"734" = "734"
' The result of the preceding comparison is True.
Als een tekenreeks een voorvoegsel is van een andere, zoals 'aa' en 'aaa', wordt de langere tekenreeks beschouwd als groter dan de kortere tekenreeks. In het volgende voorbeeld ziet u dit.
"aaa" > "aa"
' The result of the preceding comparison is True.
De sorteervolgorde is gebaseerd op een binaire vergelijking of een tekstuele vergelijking, afhankelijk van de instelling van Option Compare
. Zie Option Compare Statement voor meer informatie.
Objecten vergelijken
Visual Basic vergelijkt twee objectverwijzingsvariabelen met de is-operator en de IsNot-operator. U kunt een van deze operators gebruiken om te bepalen of twee referentievariabelen verwijzen naar hetzelfde objectexemplaren. In het volgende voorbeeld ziet u dit.
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
In het voorgaande voorbeeld x Is y
wordt dit True
geëvalueerd, omdat beide variabelen verwijzen naar hetzelfde exemplaar. Vergelijk dit resultaat met het volgende voorbeeld.
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
In het voorgaande voorbeeld x Is y
wordt geëvalueerd, False
omdat de variabelen naar objecten van hetzelfde type verwijzen, ze verwijzen naar verschillende exemplaren van dat type.
Wanneer u wilt testen op twee objecten die niet naar hetzelfde exemplaar wijzen, kunt u met de IsNot
operator een grammaticale onhandige combinatie van Not
en Is
. In het volgende voorbeeld ziet u dit.
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
In het voorgaande voorbeeld is If a IsNot b
dit gelijk aan If Not a Is b
.
Objecttype vergelijken
U kunt testen of een object van een bepaald type is met de TypeOf
...Is
-expressie. De syntaxis is als volgt:
TypeOf <objectexpression> Is <typename>
Wanneer typename
een interfacetype wordt opgegeven, retourneert True
de TypeOf
expressie ...Is
als het object het interfacetype implementeert. Wanneer typename
is een klassetype, retourneert True
de expressie of het object een exemplaar is van de opgegeven klasse of van een klasse die is afgeleid van de opgegeven klasse. In het volgende voorbeeld ziet u dit.
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
In het voorgaande voorbeeld wordt de TypeOf x Is Control
expressie geëvalueerd True
omdat het type x
is Button
, dat overgaat van Control
.
Zie TypeOf Operator voor meer informatie.