Összehasonlító operátorok (Visual Basic)
A Visual Basicben az alábbi összehasonlító operátorok vannak definiálva.
<
Üzemeltető
<=
Üzemeltető
>
Üzemeltető
>=
Üzemeltető
=
Üzemeltető
<>
Üzemeltető
Ezek az operátorok két kifejezést hasonlítanak össze annak megállapításához, hogy egyenlők-e, és ha nem, akkor miben különböznek. Is
, IsNot
és Like
részletesen tárgyaljuk a különböző súgóoldalakon. A relációs összehasonlító operátorokat részletesen tárgyaljuk ezen az oldalon.
Syntax
result = expression1 comparisonoperator expression2
result = object1 [Is | IsNot] object2
result = string Like pattern
Részek
result
Szükséges. Az Boolean
összehasonlítás eredményét képviselő érték.
expression1
, expression2
Szükséges. Bármilyen kifejezés.
comparisonoperator
Szükséges. Bármely relációs összehasonlító operátor.
object1
, object2
Szükséges. Bármely referenciaobjektum neve.
string
Szükséges. Bármilyen String
kifejezés.
pattern
Szükséges. Bármilyen String
kifejezés vagy karaktertartomány.
Megjegyzések
Az alábbi táblázat tartalmazza a relációs összehasonlító operátorok listáját, valamint azokat a feltételeket, amelyek meghatározzák, hogy result
az vagy .True
False
Operátor | True Ha |
False Ha |
---|---|---|
< (Kisebb, mint) |
expression1 < expression2 |
expression1 >= expression2 |
<= (Kisebb vagy egyenlő) |
expression1 <= expression2 |
expression1 > expression2 |
> (Nagyobb, mint) |
expression1 > expression2 |
expression1 <= expression2 |
>= (Nagyobb vagy egyenlő) |
expression1 >= expression2 |
expression1 < expression2 |
= (Egyenlő) |
expression1 = expression2 |
expression1 <> expression2 |
<> (Nem egyenlő) |
expression1 <> expression2 |
expression1 = expression2 |
Feljegyzés
Az = operátor hozzárendelési operátorként is használható.
Az Is
operátornak, az IsNot
operátornak és az Like
operátornak olyan összehasonlító funkciói vannak, amelyek eltérnek az előző táblázatban szereplő operátoroktól.
Számok összehasonlítása
Ha egy típuskifejezést Single
egy típushoz Double
hasonlít össze, a rendszer átalakítja Double
a Single
kifejezést . Ez a viselkedés ellentétes a Visual Basic 6-ban található viselkedésével.
Hasonlóképpen, ha egy típuskifejezést egy típuskifejezéssel Single
hasonlít össze, vagy Double
a kifejezést a Decimal
rendszer átalakítja vagy Double
.Single
Decimal
Kifejezések esetén Decimal
az 1E-28-nál kisebb törtérték elveszhet. Az ilyen törtérték-veszteség két érték összehasonlítását okozhatja egyenlőként, ha nem. Ezért ügyeljen arra, hogy egyenlőség (=
) használatával összehasonlítson két lebegőpontos változót. Biztonságosabb annak vizsgálata, hogy a két szám közötti különbség abszolút értéke kisebb-e, mint egy kis elfogadható tolerancia.
Lebegőpontos imprecision
Ha lebegőpontos számokkal dolgozik, ne feledje, hogy nem mindig rendelkeznek pontos ábrázolással a memóriában. Ez bizonyos műveletek, például az érték-összehasonlítás és a Mod Operátor váratlan eredményeihez vezethet. További információ: Adattípusok hibaelhárítása.
Sztringek összehasonlítása
A sztringek összehasonlításakor a sztringkifejezések betűrend szerinti rendezési sorrendjük alapján lesznek kiértékelve, ami a Option Compare
beállítástól függ.
Option Compare Binary
a sztring-összehasonlításokat a karakterek belső bináris ábrázolásaiból származtatott rendezési sorrendre alapozza. A rendezési sorrendet a kódlap határozza meg. Az alábbi példa egy tipikus bináris rendezési sorrendet mutat be.
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
Option Compare Text
a sztring-összehasonlításokat egy kis- és nagybetűkre vonatkozó, szöveges rendezési sorrendre alapozza, amelyet az alkalmazás területi beállításai határoznak meg. Az előző példában szereplő karakterek beállításakor Option Compare Text
és rendezésekor a következő szöveg rendezési sorrend érvényes:
(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)
Területi függőség
Ha beállítja Option Compare Text
, a sztring-összehasonlítás eredménye attól függ, hogy melyik területi beállításban fut az alkalmazás. Két karakter egyenlő lehet az egyik területi beállításban, a másikban azonban nem. Ha sztring-összehasonlítást használ a fontos döntések meghozatalához, például hogy elfogadja-e a bejelentkezési kísérletet, a területi érzékenységre kell figyelmeztetnie. Fontolja meg a beállítás vagy Option Compare Binary
a StrCompmeghívást, amely figyelembe veszi a területi beállításokat.
Típus nélküli programozás relációs összehasonlító operátorokkal
A relációs összehasonlító operátorok kifejezésekkel való Object
használata nem engedélyezett Option Strict On
a . Ha Option Strict
igen Off
, és expression1
expression2
vagy Object
kifejezés, a futásidejű típusok határozzák meg az összehasonlítás módját. Az alábbi táblázat a kifejezések összehasonlítását és az összehasonlítás eredményét mutatja be az operandusok futásidejű típusától függően.
Ha az operandusok | Az összehasonlítás a |
---|---|
Mind String |
Az összehasonlítás rendezése a sztringek rendezési jellemzői alapján. |
Mindkét szám | Numerikus összehasonlítássá konvertált Double objektumok. |
Egy szám és egy String |
A String rendszer átalakítja a műveletet, Double és numerikus összehasonlítást végez. Ha a String nem konvertálható Double , a rendszer egy InvalidCastException műveletet ad vissza. |
Vagy mindkettő olyan referenciatípus, amely nem String |
Egy InvalidCastException van dobva. |
A numerikus összehasonlítások 0-ként kezelik Nothing
. A sztring-összehasonlítások (üres sztring) néven ""
kezelhetőkNothing
.
Túlterhelés
A relációs összehasonlító operátorok (<
. <=
, >
, >=
, =
, ) <>
túlterhelhetők, ami azt jelenti, hogy egy osztály vagy struktúra újradefiniálhatja a viselkedését, ha egy operandus az adott osztály vagy struktúra típusával rendelkezik. Ha a kód ezen operátorok bármelyikét használja egy ilyen osztályban vagy struktúrában, ügyeljen arra, hogy megértse az újradefiniált viselkedést. További információ: Operátori eljárások.
Figyelje meg, hogy az = operátor csak relációs összehasonlító operátorként túlterhelhető, hozzárendelési operátorként nem.
Példa
Az alábbi példa a relációs összehasonlító operátorok különböző felhasználási módjait mutatja be, amelyeket kifejezések összehasonlítására használ. A relációs összehasonlító operátorok olyan Boolean
eredményt adnak vissza, amely azt jelzi, hogy a megadott kifejezés kiértékeli-e azt True
. Amikor sztringekre alkalmazza az és <
az >
operátorokat, az összehasonlítás a sztringek normál betűrend szerinti rendezési sorrendjével történik. Ez a sorrend a területi beállítástól függhet. Az Option Compare beállítástól függ, hogy a rendezés megkülönbözteti-e a kis- és nagybetűket.
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
Az előző példában az első összehasonlítás és a fennmaradó összehasonlítások False
adnak vissza True
.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: