Sdílet prostřednictvím


Operátory porovnání 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 sekundy? 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ává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 Falsevýsledek . Čí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 to, že první znak v prvním řetězci seřadí 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. Toto dokládá následující příklad.

"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ů. Toto dokládá následující příklad.

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. Toto dokládá následující příklad.

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. Toto dokládá následující příklad.

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 TypeOf x Is Control se výraz vyhodnotí True jako, protože typ x je Button, který dědí z Control.

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

Viz také