+-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
Verkettungsoperatoren (Visual Basic)
Arithmetische Operatoren (Visual Basic)
Operatoren sortiert nach Funktionalität