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 True
resultatet . Annars blir False
resultatet . 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 TypeOf
uttrycket ...Is
. Syntaxen ser ut så här:
TypeOf <objectexpression> Is <typename>
När typename
anger en gränssnittstyp TypeOf
returnerar 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.