Freigeben über


And-Operator (Visual Basic)

Aktualisiert: November 2007

Führt eine logische Konjunktion zweier Boolean-Ausdrücke oder eine bitweise Konjunktion zweier numerischer Ausdrücke aus.

result = expression1 And expression2

Bestandteile

  • result
    Erforderlich. Beliebiger Boolean-Ausdruck oder numerischer Ausdruck. Bei booleschen Vergleichen ist result die logische Konjunktion von zwei Boolean-Werten. Bei bitweisen Operationen ist result ein numerischer Wert, der die bitweise Konjunktion von zwei numerischen Bitmustern darstellt.

  • expression1
    Erforderlich. Beliebiger Boolean-Ausdruck oder numerischer Ausdruck.

  • expression2
    Erforderlich. Beliebiger Boolean-Ausdruck oder numerischer Ausdruck.

Hinweise

Bei booleschen Vergleichen ist result dann und nur dann True, wenn sowohlexpression1 als auch expression2 zu True ausgewertet werden. Die folgende Tabelle veranschaulicht, wie result bestimmt wird.

Ist expression1 gleich

und expression2 gleich

ist der Wert von result gleich

True

True

True

True

False

False

False

True

False

False

False

False

Hinweis:

In einem booleschen Vergleich wertet der And-Operator immer beide Ausdrücke aus, wobei u. U. Prozeduraufrufe ausgeführt werden können. Der AndAlso-Operator führt Kurzschlussoperationen aus. Das bedeutet, dass expression2 nicht ausgewertet wird, wenn expression1False ist.

Wenn der And-Operator auf numerische Werte angewendet wird, werden identisch positionierte Bits in zwei numerischen Ausdrücken bitweise verglichen. Das entsprechende Bit wird entsprechend der folgenden Tabelle in result eingesetzt:

Ist Bit in expression1 gleich

und ist Bit in expression2 gleich

dann ist das Bit in result gleich

1

1

1

1

0

0

0

1

0

0

0

0

Hinweis:

Da die logischen und bitweisen Operatoren einen niedrigeren Rang als andere arithmetische und relationale Operatoren haben, müssen alle bitweisen Operationen in runde Klammern gesetzt werden, um präzise Ergebnisse zu gewährleisten.

Datentypen

Wenn die Operanden aus einem Boolean-Ausdruck und einem numerischen Ausdruck bestehen, wandelt Visual Basic den Boolean-Ausdruck in einen numerischen Wert um (–1 für True und 0 für False) und führt eine bitweise Operation aus.

Bei einem Vergleich von booleschen Ausdrücken ist der Datentyp des Ergebnisses Boolean. Bei einem bitweisen Vergleich ist der Datentyp des Ergebnisses ein numerischer Typ, der für die Datentypen von expression1 und expression2 geeignet ist. Siehe die Tabelle "Relationale und bitweise Vergleiche" in Datentypen von Operatorergebnissen.

Hinweis:

Der And-Operator kann überladen werden. Das bedeutet, dass eine Klasse oder Struktur sein Verhalten neu definiert, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. Wenn Sie diesen Operator im Code auf eine solche Klasse oder Struktur anwenden, sollten Sie auf jeden Fall sein neu definiertes Verhalten verstehen. Weitere Informationen hierzu finden Sie unter Operatorprozeduren.

Beispiel

In diesem Beispiel wird mit dem And-Operator eine logische Konjunktion zweier Ausdrücke ausgeführt. Das Ergebnis ist ein Boolean-Wert, der darstellt, ob beide Ausdrücke True sind.

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

Im vorangehenden Beispiel werden die Ergebnisse True bzw. False berechnet.

Im folgenden Beispiel wird mit dem And-Operator eine logische Konjunktion einzelner Bits zweier numerischer Ausdrücke ausgeführt. Das Bit im Ergebnismuster wird gesetzt, wenn die beiden entsprechenden Bits in den Operanden auf 1 gesetzt sind.

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)

Im vorangehenden Beispiel werden die Ergebnisse 8, 2 bzw. 0 berechnet.

Siehe auch

Konzepte

Logische und bitweise Operatoren in Visual Basic

Referenz

Logische/Bitweise Operatoren

Operatorrangfolge in Visual Basic

Operatoren sortiert nach Funktionalität

AndAlso-Operator