Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.