Delen via


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 Truehet resultaat . Anders is Falsehet 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 Truegeë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, Falseomdat 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 TypeOfexpressie ...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.

Zie ook