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


Összehasonlító operátorok a Visual Basicben

Az összehasonlító operátorok két kifejezést hasonlítanak össze, és egy Boolean értéket adnak vissza, amely az értékük kapcsolatát jelöli. Vannak operátorok a numerikus értékek összehasonlítására, a sztringek összehasonlítására szolgáló operátorok és az objektumok összehasonlítására szolgáló operátorok. Ebben a témakörben mindhárom operátortípust tárgyaljuk.

Numerikus értékek összehasonlítása

A Visual Basic hat numerikus összehasonlító operátor használatával hasonlítja össze a numerikus értékeket. Minden operátor két olyan kifejezést vesz fel operandusként, amelyek numerikus értékeket értékelnek ki. Az alábbi táblázat felsorolja az operátorokat, és példákat mutat be ezekre.

Operátor Feltétel tesztelve Példák
= (Egyenlőség) Az első kifejezés értéke megegyezik a második értékével? 23 = 33 ' False

23 = 23 ' True

23 = 12 ' False
<> (Egyenlőtlenség) Az első kifejezés értéke nem egyenlő a második értékével? 23 <> 33 ' True

23 <> 23 ' False

23 <> 12 ' True
< (Kisebb, mint) Az első kifejezés értéke kisebb, mint a másodiké? 23 < 33 ' True

23 < 23 ' False

23 < 12 ' False
> (Nagyobb, mint) Az első kifejezés értéke nagyobb, mint a második? 23 > 33 ' False

23 > 23 ' False

23 > 12 ' True
<= (Kisebb vagy egyenlő) Az első kifejezés értéke kisebb vagy egyenlő a második értékével? 23 <= 33 ' True

23 <= 23 ' True

23 <= 12 ' False
>= (Nagyobb vagy egyenlő) Az első kifejezés értéke nagyobb vagy egyenlő a második értékével? 23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Sztringek összehasonlítása

A Visual Basic a Hasonló operátor és a numerikus összehasonlító operátorok használatával hasonlítja össze a sztringeket. Az Like operátor lehetővé teszi egy minta megadását. A sztring ezután összehasonlítva lesz a mintával, és ha megegyezik, az eredmény .True Ellenkező esetben az eredmény a következő False: . A numerikus operátorok lehetővé teszik az értékek összehasonlítását String a rendezési sorrendjük alapján, ahogyan az az alábbi példában is látható.

"73" < "9"

' The result of the preceding comparison is True.

Az előző példában az eredmény az, True hogy az első sztring első karaktere a második sztring első karaktere elé rendez. Ha az első karakterek egyenlőek lennének, az összehasonlítás mindkét sztringben a következő karakterrel folytatódna, és így tovább. A sztringek egyenlőségét az egyenlőség operátorral is tesztelheti, ahogyan az az alábbi példában is látható.

"734" = "734"

' The result of the preceding comparison is True.

Ha az egyik sztring egy másik előtagja, például "aa" és "aaa", a hosszabb sztring nagyobb, mint a rövidebb sztring. Az alábbi példa ezt szemlélteti.

"aaa" > "aa"

' The result of the preceding comparison is True.

A rendezési sorrend bináris összehasonlításon vagy szöveges összehasonlításon alapul a beállítástól Option Comparefüggően. További információ: Option Compare Utasítás.

Objektumok összehasonlítása

A Visual Basic két objektumhivatkozási változót hasonlít össze az Is operátorral és az IsNot operátorral. Ezen operátorok bármelyikével megállapíthatja, hogy két referenciaváltozó ugyanarra az objektumpéldányra hivatkozik-e. Az alábbi példa ezt szemlélteti.

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 x Is y a kiértékelés eredménye True, mert mindkét változó ugyanarra a példányra hivatkozik. Az eredmény kontrasztja az alábbi példával.

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

Az előző példában ennek a kiértékelése Falsetörténik, x Is y mert bár a változók azonos típusú objektumokra hivatkoznak, az adott típus különböző példányaira hivatkoznak.

Ha két olyan objektumot szeretne tesztelni, amelyek nem ugyanarra a példányra mutatnak, az IsNot operátor lehetővé teszi, hogy elkerülje a nyelvhelyességi Not és Isa . Az alábbi példa ezt szemlélteti.

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

Az előző példában If a IsNot b a következőnek felel meg: If Not a Is b.

Objektumtípus összehasonlítása

A ...Is kifejezéssel TypeOftesztelheti, hogy egy objektum egy adott típusú-e. A szintaxis a következő:

TypeOf <objectexpression> Is <typename>

Ha typename egy felülettípust ad meg, akkor a TypeOf...Is kifejezés akkor ad vissza True , ha az objektum megvalósítja az illesztőtípust. Ha typename osztálytípus, akkor a kifejezés akkor ad vissza True , ha az objektum a megadott osztály vagy a megadott osztályból származó osztály példánya. Az alábbi példa ezt szemlélteti.

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

Az előző példában a TypeOf x Is Control kifejezés kiértékelése True azért történikButton, mert a típus x a következőtől Controlöröklődik: .

További információ: TypeOf Operátor.

Lásd még