Och operator (Visual Basic)
Utför en logisk konjunktion på två Boolean
uttryck eller en bitvis konjunktion på två numeriska uttryck.
Syntax
result = expression1 And expression2
Delar
result
Obligatoriska. Valfritt Boolean
eller numeriskt uttryck. För boolesk jämförelse result
är den logiska konjunktionen av två Boolean
värden. För bitvis åtgärder result
är ett numeriskt värde som representerar bitvis konjunktion av två numeriska bitmönster.
expression1
Obligatoriska. Valfritt Boolean
eller numeriskt uttryck.
expression2
Obligatoriska. Valfritt Boolean
eller numeriskt uttryck.
Kommentarer
För boolesk jämförelse result
är True
om och endast om både expression1
och expression2
utvärderas till True
. I följande tabell visas hur result
bestäms.
Om expression1 är |
Och expression2 är |
Värdet för result är |
---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
Kommentar
I en boolesk jämförelse utvärderar operatorn And
alltid båda uttrycken, vilket kan innefatta att göra proceduranrop. AndAlso-operatorn utför kortslutning, vilket innebär att om expression1
är False
expression2
, utvärderas inte.
När operatorn tillämpas på numeriska värden utför den And
en bitvis jämförelse av identiskt placerade bitar i två numeriska uttryck och anger motsvarande bit i result
enligt följande tabell.
Om bit in expression1 är |
Och bit in expression2 är |
Biten i result är |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
Kommentar
Eftersom de logiska operatorerna och bitvis-operatorerna har lägre prioritet än andra aritmetiska operatorer och relationsoperatorer bör eventuella bitvis åtgärder omges av parenteser för att säkerställa korrekta resultat.
Datatyper
Om operanderna består av ett Boolean
uttryck och ett numeriskt uttryck konverterar Boolean
Visual Basic uttrycket till ett numeriskt värde (–1 för True
och 0 för False
) och utför en bitvis åtgärd.
För en boolesk jämförelse är Boolean
datatypen för resultatet . För en bitvis jämförelse är resultatdatatypen en numerisk typ som är lämplig för datatyperna expression1
och expression2
. Se tabellen "Relations- och bitvisjämförelser" i Datatyper av operatorresultat.
Kommentar
Operatorn And
kan överbelastas, vilket innebär att en klass eller struktur kan omdefiniera sitt beteende när en operande har den typen av klass eller struktur. Om din kod använder den här operatorn i en sådan klass eller struktur bör du se till att du förstår dess omdefinierade beteende. Mer information finns i Operatorprocedurer.
Exempel 1
I följande exempel används operatorn And
för att utföra en logisk konjunktion på två uttryck. Resultatet är ett Boolean
värde som representerar om båda uttrycken är True
.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = a > b And b > c
secondCheck = b > a And b > c
Föregående exempel ger resultat av True
respektive False
.
Exempel 2
I följande exempel används operatorn And
för att utföra logisk konjunktion på enskilda bitar av två numeriska uttryck. Biten i resultatmönstret anges om motsvarande bitar i operanderna båda är inställda på 1.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a And b)
secondPattern = (a And c)
thirdPattern = (b And c)
Föregående exempel ger resultat på 8, 2 respektive 0.