Dela via


Jämförelseoperatorer i Visual Basic

Jämförelseoperatorer jämför två uttryck och returnerar ett Boolean värde som representerar relationen mellan deras värden. Det finns operatorer för att jämföra numeriska värden, operatorer för att jämföra strängar och operatorer för att jämföra objekt. Alla tre typerna av operatorer beskrivs häri.

Jämföra numeriska värden

Visual Basic jämför numeriska värden med sex numeriska jämförelseoperatorer. Varje operator tar som operander två uttryck som utvärderas till numeriska värden. Följande tabell visar operatorerna och visar exempel på var och en.

Operator Villkoret har testats Exempel
= (Likhet) Är värdet för det första uttrycket lika med värdet för det andra? 23 = 33 ' False

23 = 23 ' True

23 = 12 ' False
<> (Ojämlikhet) Är värdet för det första uttrycket ojämlikt jämfört med värdet för det andra? 23 <> 33 ' True

23 <> 23 ' False

23 <> 12 ' True
< (Mindre än) Är värdet för det första uttrycket mindre än värdet för det andra? 23 < 33 ' True

23 < 23 ' False

23 < 12 ' False
> (Större än) Är värdet för det första uttrycket större än värdet för det andra? 23 > 33 ' False

23 > 23 ' False

23 > 12 ' True
<= (Mindre än eller lika med) Är värdet för det första uttrycket mindre än eller lika med värdet för det andra? 23 <= 33 ' True

23 <= 23 ' True

23 <= 12 ' False
>= (Större än eller lika med) Är värdet för det första uttrycket större än eller lika med värdet för det andra? 23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Jämföra strängar

Visual Basic jämför strängar med like-operatorn samt numeriska jämförelseoperatorer. Med Like operatorn kan du ange ett mönster. Strängen jämförs sedan med mönstret och om den matchar blir Trueresultatet . Annars blir Falseresultatet . Med de numeriska operatorerna kan du jämföra String värden baserat på deras sorteringsordning, vilket visas i följande exempel.

"73" < "9"

' The result of the preceding comparison is True.

Resultatet i föregående exempel beror True på att det första tecknet i den första strängen sorterar före det första tecknet i den andra strängen. Om de första tecknen var lika skulle jämförelsen fortsätta till nästa tecken i båda strängarna och så vidare. Du kan också testa likheten mellan strängar med hjälp av likhetsoperatorn, vilket visas i följande exempel.

"734" = "734"

' The result of the preceding comparison is True.

Om en sträng är ett prefix för en annan, till exempel "aa" och "aaa", anses den längre strängen vara större än den kortare strängen. I följande exempel visas detta.

"aaa" > "aa"

' The result of the preceding comparison is True.

Sorteringsordningen baseras antingen på en binär jämförelse eller en textjämförelse beroende på inställningen för Option Compare. Mer information finns i Alternativ jämför-instruktion.

Jämföra objekt

Visual Basic jämför två objektreferensvariabler med Is Operator och IsNot Operator. Du kan använda någon av dessa operatorer för att avgöra om två referensvariabler refererar till samma objektinstans. I följande exempel visas detta.

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

I föregående exempel x Is y utvärderas till True, eftersom båda variablerna refererar till samma instans. Jämför det här resultatet med följande exempel.

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

I föregående exempel x Is y utvärderas till False, eftersom även om variablerna refererar till objekt av samma typ refererar de till olika instanser av den typen.

När du vill testa för två objekt som inte pekar på samma instans kan du med operatorn IsNot undvika en grammatiskt klumpig kombination av Not och Is. I följande exempel visas detta.

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

I föregående exempel If a IsNot b motsvarar If Not a Is b.

Jämföra objekttyp

Du kan testa om ett objekt är av en viss typ med TypeOfuttrycket ...Is . Syntaxen ser ut så här:

TypeOf <objectexpression> Is <typename>

När typename anger en gränssnittstyp TypeOfreturnerar True uttrycket ...Is om objektet implementerar gränssnittstypen. När typename är en klasstyp returnerar True uttrycket om objektet är en instans av den angivna klassen eller en klass som härleds från den angivna klassen. I följande exempel visas detta.

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

I föregående exempel TypeOf x Is Control utvärderas uttrycket till True eftersom typen är x Button, som ärver från Control.

Mer information finns i TypeOf Operator.

Se även