Megosztás a következőn keresztül:


Ö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ő

Operátor

IsNot operátor

Operátor kedvelve

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 .TrueFalse

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 Doublehasonlít össze, a rendszer átalakítja Doublea 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 Doublea kifejezést a Decimal rendszer átalakítja vagy Double.SingleDecimal 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 Ona . Ha Option Strict igen Off, és expression1expression2 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 Doubleobjektumok.
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