Freigeben über


+-Operator (Visual Basic)

Aktualisiert: November 2007

Addiert zwei Zahlen oder gibt den positiven Wert eines numerischen Ausdrucks zurück. Kann auch zum Verketten zweier Zeichenfolgenausdrücke verwendet werden.

expression1 + expression2
- or -
+ expression1

Bestandteile

  • expression1
    Erforderlich. Beliebiger numerischer Ausdruck oder Zeichenfolgenausdruck.

  • expression2
    Erforderlich, außer wenn der +-Operator einen negativen Wert berechnet. Beliebiger numerischer Ausdruck oder Zeichenfolgenausdruck.

Ergebnis

Wenn sowohl expression1 als auch expression2 numerisch sind, ist das Ergebnis ihre arithmetische Summe.

Wenn expression2 nicht vorhanden ist, ist der +-Operator der unäre Identitätsoperator für den unveränderten Wert eines Ausdrucks. Unter diesen Bedingungen besteht die Operation darin, das Vorzeichen von expression1 beizubehalten, sodass das Ergebnis negativ ist, wenn expression1 negativ ist.

Wenn sowohl expression1 als auch expression2 Zeichenfolgen sind, ist das Ergebnis die Verkettung ihrer Werte.

Wenn expression1 und expression2 unterschiedliche Typen sind, richtet sich die ausgeführte Aktion nach ihren Typen, ihren Inhalten und der Einstellung der Option Strict-Anweisung. Weitere Informationen finden Sie im Abschnitt "Hinweise".

Unterstützte Typen

Alle numerischen Typen, einschließlich Typen ohne Vorzeichen, Gleitkommatypen sowie Decimal und String.

Hinweise

Im Allgemeinen führt + wann immer möglich arithmetische Additionen aus und führt nur dann eine Verkettung aus, wenn beide Ausdrücke Zeichenfolgen sind.

Wenn kein Ausdruck ein Object ist, führt Visual Basic die folgenden Aktionen aus.

Datentypen der Ausdrücke

Aktion des Compilers

Beide Ausdrücke sind numerische Datentypen (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single oder Double)

Addition. Der Ergebnisdatentyp ist ein numerischer Typ, entsprechend den Datentypen von expression1 und expression2. Siehe die "Ganzzahlarithmetik"-Tabellen in Datentypen von Operatorergebnissen.

Beide Ausdrücke weisen den Typ String auf

Verkettung.

Ein Ausdruck ist ein numerischer Datentyp und der andere eine Zeichenfolge.

Wenn Option Strict auf On festgelegt ist, wird ein Compilerfehler generiert.

Wenn Option Strict auf Off festgelegt ist, wird String implizit in Double konvertiert und addiert.

Wenn String nicht in Double konvertiert werden kann, wird eine InvalidCastException-Ausnahme ausgelöst.

Ein Ausdruck ein numerischer Datentyp und der andere Nothing (Visual Basic) ist

Addition, wobei der Wert von Nothing 0 ist.

Ein Ausdruck ist eine Zeichenfolge und der andere Nothing

Verkettung mit Nothing, wobei Nothing als "" angenommen wird.

Wenn ein Ausdruck ein Object ist, führt Visual Basic die folgenden Aktionen aus.

Datentypen der Ausdrücke

Aktion des Compilers

Object-Ausdruck enthält einen numerischen Wert, und der andere Ausdruck ist ein numerischer Datentyp

Wenn Option Strict auf On festgelegt ist, wird ein Compilerfehler generiert.

Wenn Option Strict auf Off festgelegt ist, wird eine Addition ausgeführt.

Object Ausdruck enthält einen numerischen Wert, und der andere Ausdruck ist vom Typ String

Wenn Option Strict auf On festgelegt ist, wird ein Compilerfehler generiert.

Wenn Option Strict auf Off festgelegt ist, wird String implizit in Double konvertiert und addiert.

Wenn String nicht in Double konvertiert werden kann, wird eine InvalidCastException-Ausnahme ausgelöst.

Object-Ausdruck enthält eine Zeichenfolge, und der andere Ausdruck ist ein numerischer Datentyp

Wenn Option Strict auf On festgelegt ist, wird ein Compilerfehler generiert.

Wenn Option Strict auf Off festgelegt ist, wird Object implizit in Double konvertiert und addiert.

Wenn Object nicht in Double konvertiert werden kann, wird eine InvalidCastException-Ausnahme ausgelöst.

Object Ausdruck enthält eine Zeichenfolge, und der andere Ausdruck ist vom Typ String

Wenn Option Strict auf On festgelegt ist, wird ein Compilerfehler generiert.

Wenn Option Strict auf Off festgelegt ist, wird Object implizit in String konvertiert und verkettet.

Wenn beide Ausdrücke Object-Ausdrücke sind, führt Visual Basic die folgenden Aktionen (nur Option Strict Off) aus.

Datentypen der Ausdrücke

Aktion des Compilers

Beide Object-Ausdrücke enthalten numerische Werte

Addition

Beide Object-Ausdrücke weisen den Typ String auf

Verkettung

Ein Object-Ausdruck enthält einen numerischen Wert, und der andere enthält eine Zeichenfolge

Die Object-Zeichenfolge wird implizit in Double konvertiert und addiert.

Wenn Object nicht in einen numerischen Wert konvertiert werden kann, wird eine InvalidCastException-Ausnahme ausgelöst.

Wenn einer der Object-Ausdrücke Nothing oder DBNull ergibt, behandelt der +-Operator den Ausdruck als String mit dem Wert "".

Hinweis:

Wenn Sie den +-Operator verwenden, können Sie nicht immer bestimmen, ob eine Addition oder eine Zeichenverkettung erfolgt. Verwenden Sie für die Verkettung den &-Operator, um Mehrdeutigkeiten zu vermeiden und sich selbst dokumentierenden Code zu erhalten.

Überladen

Der +-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

Im folgenden Beispiel wird der +-Operator verwendet, um Zahlen zu addieren. Wenn beide Operanden numerisch sind, berechnet Visual Basic das arithmetische Ergebnis. Das arithmetische Ergebnis stellt die Summe der beiden Operanden dar.

Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.

Sie können mit dem +-Operator auch Zeichenfolgen verketten. Wenn beide Operanden Zeichenfolgen sind, verkettet Visual Basic die Operanden. Das Verkettungsergebnis ist eine einzige Zeichenfolge, bei der der Inhalt der beiden Operanden hintereinander angeordnet ist.

Wenn die Operanden unterschiedliche Typen sind, hängt das Ergebnis von der Einstellung der Option Strict-Anweisung ab. Im folgenden Beispiel wird das Ergebnis veranschaulicht, wenn Option Strict auf On festgelegt ist.

Option Strict On
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2


...


' The preceding statement generates a COMPILER ERROR. 

Im folgenden Beispiel wird das Ergebnis veranschaulicht, wenn Option Strict auf Off festgelegt ist.

Option Strict Off
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2


...


' The preceding statement returns 40 after the string in var1 is
' converted to a numeric value. This might be an unexpected result.
' We do not recommend use of Option Strict Off for these operations.

Um Mehrdeutigkeiten zu vermeiden, sollten Sie für Verkettungen den &-Operator anstelle von + verwenden.

Siehe auch

Konzepte

Arithmetische Operatoren in Visual Basic

Referenz

&-Operator (Visual Basic)

Verkettungsoperatoren (Visual Basic)

Arithmetische Operatoren (Visual Basic)

Operatoren sortiert nach Funktionalität

Operatorrangfolge in Visual Basic

Option Strict-Anweisung