Sdílet prostřednictvím


Relační operátory v jazyce Visual Basic

Relační operátory porovnávají dva výrazy a vrací Boolean hodnotu, která představuje vztah jejich hodnot. Existují operátory pro porovnávání číselných hodnot, operátorů pro porovnávání řetězců a operátorů pro porovnávání objektů. Zde jsou popsány všechny tři typy operátorů.

Porovnání číselných hodnot

Visual Basic porovnává číselné hodnoty pomocí šesti číselných relačních operátorů. Každý operátor přebírá jako operandy dva výrazy, které se vyhodnocují jako číselné hodnoty. Následující tabulka uvádí operátory a uvádí příklady jednotlivých operátorů.

Operátor Testovaná podmínka Příklady
= (Rovnost) Je hodnota prvního výrazu rovna hodnotě druhé? 23 = 33 ' False

23 = 23 ' True

23 = 12 ' False
<> (Nerovnost) Je hodnota prvního výrazu nerovnaná s hodnotou druhé? 23 <> 33 ' True

23 <> 23 ' False

23 <> 12 ' True
< (Menší než) Je hodnota prvního výrazu menší než hodnota druhého výrazu? 23 < 33 ' True

23 < 23 ' False

23 < 12 ' False
> (Větší než) Je hodnota prvního výrazu větší než hodnota druhého? 23 > 33 ' False

23 > 23 ' False

23 > 12 ' True
<= (Menší než nebo rovno) Je hodnota prvního výrazu menší nebo rovna hodnotě druhé? 23 <= 33 ' True

23 <= 23 ' True

23 <= 12 ' False
>= (Větší než nebo rovno) Je hodnota prvního výrazu větší nebo rovna hodnotě druhé? 23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Porovnání řetězců

Visual Basic porovnává řetězce pomocí operátoru Like a číselných relačních operátorů. Operátor Like umožňuje zadat vzor. Řetězec se pak porovná se vzorem a pokud se shoduje, výsledek je True. V opačném případě je výsledek False. Číselné operátory umožňují porovnávat String hodnoty na základě jejich pořadí řazení, jak ukazuje následující příklad.

"73" < "9"

' The result of the preceding comparison is True.

Výsledkem v předchozím příkladu je True, protože první znak v prvním řetězci je seřazen před prvním znakem ve druhém řetězci. Pokud by byly první znaky stejné, porovnání by pokračovalo k dalšímu znaku v obou řetězcích atd. Můžete také otestovat rovnost řetězců pomocí operátoru rovnosti, jak ukazuje následující příklad.

"734" = "734"

' The result of the preceding comparison is True.

Pokud je jeden řetězec předponou jiného, například "aaa" a "aaa", považuje se delší řetězec za větší než kratší řetězec. Následující příklad to ilustruje.

"aaa" > "aa"

' The result of the preceding comparison is True.

Pořadí řazení je založeno na binárním porovnání nebo textovém porovnání v závislosti na nastavení Option Compare. Další informace naleznete v tématu Příkaz porovnání možností.

Porovnání objektů

Visual Basic porovnává dvě referenční proměnné objektu s Is Operator a IsNot Operator. K určení, jestli dvě referenční proměnné odkazují na stejnou instanci objektu, můžete použít některý z těchto operátorů. Následující příklad to ilustruje.

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

V předchozím příkladu x Is y se vyhodnotí jako True, protože obě proměnné odkazují na stejnou instanci. Porovnejte tento výsledek s následujícím příkladem.

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

V předchozím příkladu se x Is y vyhodnotí jako False, protože i když proměnné odkazují na objekty stejného typu, odkazují na různé instance tohoto typu.

Pokud chcete testovat dva objekty, které neukazují na stejnou instanci, IsNot operátor vám umožní vyhnout se gramatické kombinaci Not a Is. Následující příklad to ilustruje.

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

V předchozím příkladu If a IsNot b je ekvivalentní If Not a Is b.

Porovnání typu objektu

Pomocí výrazu TypeOf...Is můžete otestovat, zda je objekt určitého typu. Syntaxe je následující:

TypeOf <objectexpression> Is <typename>

Pokud typename určuje typ rozhraní, TypeOfvýraz ...Is vrátí True , pokud objekt implementuje typ rozhraní. Pokud typename je typ třídy, výraz vrátí True , pokud je objekt instance zadané třídy nebo třídy, která je odvozena ze zadané třídy. Následující příklad to ilustruje.

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

V předchozím příkladu se výraz TypeOf x Is Control vyhodnotí jako True, protože typ x je Button, který dědí z Control.

Další informace naleznete v tématu TypeOf – operátor.

Viz také