Freigeben über


+-Operator (Visual Basic)

Addiert zwei Zahlen oder gibt den positiven Wert eines numerischen Ausdrucks zurück. Kann auch verwendet werden, um zwei Zeichenfolgenausdrücke zu verketten.

Syntax

expression1 + expression2

oder

+expression1  

Bestandteile

Begriff Definition
expression1 Erforderlich. Beliebiger numerischer oder Zeichenfolgenausdruck.
expression2 Erforderlich, es sei denn, der +-Operator berechnet einen negativen Wert. Beliebiger numerischer oder Zeichenfolgenausdruck.

Ergebnis

Wenn expression1 und expression2 beide numerisch sind, ist das Ergebnis ihre arithmetische Summe.

Wenn expression2 nicht vorhanden, ist der +-Operator der unäre Identitätsoperator für den unveränderten Wert eines Ausdrucks. In diesem Sinne besteht die Operation aus der Beibehaltung des Vorzeichens expression1, sodass das Ergebnis negativ ist, wenn expression1 negativ ist.

Wenn expression1 und expression2 beide Zeichenfolgen sind, ist das Ergebnis die Verkettung ihrer Werte.

Wenn expression1 und expression2 von gemischten Typen sind, hängt die getroffene Aktion von ihren Typen, ihren Inhalten und der Einstellung der Option Strict-Anweisungab. Weitere Informationen finden Sie in den Tabellen in „Hinweise“.

Unterstützte Typen

Alle numerischen Typen, einschließlich der nicht signierten und Gleitkommatypen und Decimal und String.

Bemerkungen

Im Allgemeinen führt + arithmetische Ergänzungen nach Möglichkeit aus und verkettet nur, wenn beide Ausdrücke Zeichenfolgen sind.

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

Datentypen von Ausdrücken Aktion nach Compiler
Beide Ausdrücke sind numerische Datentypen (SByte , Byte, Short, UShort, Integer, UIntegerLong , ULong, Decimal, Single oder Double) Hinzufügen Der Ergebnisdatentyp ist ein numerischer Typ, der für die Datentypen von expression1 und expression2 geeignet ist. Weitere Informationen finden Sie in den Tabellen „Ganzzahlarithmetik“ in den Datentypen von Operatorergebnissen.
Beide Ausdrücke sind vom Typ String Verketten.
Ein Ausdruck ist ein numerischer Datentyp und der andere eine Zeichenfolge. Wenn Option StrictOn ist, generieren Sie einen Compilerfehler.

Wenn Option StrictOff ist, konvertieren Sie die String implizit in Double und fügen sie hinzu.

Wenn die String nicht zu Double konvertiert werden kann, lösen Sie eine InvalidCastException-Ausnahme aus.
Ein Ausdruck ist ein numerischer Datentyp, und der andere ist Nothing Hinzufügen, mit Nothing-Wert als Null.
Ein Ausdruck ist eine Zeichenfolge, und die andere ist Nothing Verketten, mit Nothing-Wert als „“.

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

Datentypen von Ausdrücken Aktion nach Compiler
Der Object-Ausdruck enthält einen numerischen Wert, und der andere ist ein numerischer Datentyp. Wenn Option StrictOn ist, generieren Sie einen Compilerfehler.

Wenn Option StrictOff ist, fügen Sie es hinzu.
Der Object- Ausdruck enthält einen numerischen Wert, und der andere ist vom Typ String Wenn Option StrictOn ist, generieren Sie einen Compilerfehler.

Wenn Option StrictOff ist, konvertieren Sie die String implizit in Double und fügen sie hinzu.

Wenn die String nicht zu Double konvertiert werden kann, lösen Sie eine InvalidCastException-Ausnahme aus.
Der Object- Ausdruck enthält eine Zeichenfolge, und der andere ist ein numerischer Datentyp. Wenn Option StrictOn ist, generieren Sie einen Compilerfehler.

Wenn Option StrictOff ist, konvertieren Sie die Zeichenfolge Object implizit in Double und fügen sie hinzu.

Wenn die Zeichenfolge Object nicht in Double konvertiert werden kann, wird eine InvalidCastException-Ausnahme ausgelöst.
Der Object- Ausdruck enthält eine Zeichenfolge, und der andere ist vom Typ String Wenn Option StrictOn ist, generieren Sie einen Compilerfehler.

Wenn Option StrictOff ist, wird Object implizit in String konvertiert und verkettet.

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

Datentypen von Ausdrücken Aktion nach Compiler
Beide Object-Ausdrücke enthalten numerische Werte Hinzufügen
Beide Object-Ausdrücke sind vom Typ String Verketten.
Ein Object-Ausdruck enthält einen numerischen Wert, und der andere enthält eine Zeichenfolge Konvertieren Sie die Zeichenfolge Object implizit in Double und fügen Sie sie hinzu.

Wenn die Zeichenfolge Object nicht in einen numerischen Wert konvertiert werden kann, lösen Sie eine InvalidCastException-Ausnahme aus.

Wenn ein Object-Ausdruck als Nothing oder DBNull ausgewertet wird, behandelt der +-Operator ihn als String mit einem Wert von „“.

Hinweis

Wenn Sie den +-Operator verwenden, können Sie möglicherweise nicht ermitteln, ob eine Addition oder Zeichenfolgenverkettung auftritt. Verwenden Sie den &-Operator zur Verkettung, um Mehrdeutigkeit zu vermeiden und selbst dokumentierten Code bereitzustellen.

Überladen

Der +-Operator kann überladen werden. Dies bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. Wenn Ihr Code diesen Operator für eine solche Klasse oder Struktur verwendet, stellen Sie sicher, dass Sie das neu definierte Verhalten verstehen. Weitere Informationen finden Sie unter Operator Procedures.

Beispiel

Im folgenden Beispiel wird der +-Operator zum Hinzufügen von Zahlen verwendet. Wenn die Operanden beide 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 den Operator + verwenden, um Zeichenfolgen zu verketten. Wenn die Operanden beide Zeichenfolgen sind, verkettet Visual Basic sie. Das Verkettungsergebnis stellt eine einzelne Zeichenfolge dar, die aus dem Inhalt der beiden Operanden besteht.

Wenn die Operanden gemischt sind, hängt das Ergebnis von der Einstellung der Option Strict-Anweisungab. Das folgende Beispiel veranschaulicht das Ergebnis, wenn Option StrictOn 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. 

Das folgende Beispiel veranschaulicht das Ergebnis, wenn Option StrictOff 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 Mehrdeutigkeit zu vermeiden, sollten Sie den &-Operator anstelle der + für die Verkettung verwenden.

Siehe auch