+ — Operator (Visual Basic)
Dodaje dwie liczby lub zwraca wartość dodatnią wyrażenia liczbowego.Można również łączyć dwa wyrażenia ciąg.
expression1 + expression2
- or -
+ expression1
Części
Termin |
Definicja |
expression1 |
Wymagane.Dowolne wyrażenie liczbowe lub ciąg. |
expression2 |
Wymagane, chyba że + operator jest obliczenie wartości ujemnej.Dowolne wyrażenie liczbowe lub ciąg. |
Wynik
Jeśli expression1 i expression2 są zarówno numeryczne, wynik jest ich suma arytmetycznych.
Jeśli expression2 jest nieobecny, + jest operator jednoargumentowe tożsamości operatora niezmienione wartości wyrażenia.W tym sensie, operacja składa się z zachowując znak expression1, więc wynik jest ujemny, jeśli expression1 jest liczbą ujemną.
Jeśli expression1 i expression2 zarówno ciągi są wynikiem jest tworzona przez złączenie ich wartości.
Jeśli expression1 i expression2 są mieszanych typów działań podjętych zależy od ich typów, ich zawartość i ustawienia z Option Strict — Instrukcja.Aby uzyskać więcej informacji zobacz tabele w polu "Uwagi".
Obsługiwane typy
Wszystkie typy liczbowe, włącznie z typami niepodpisane i zmiennoprzecinkowych i Decimal, i String.
Uwagi
Ogólnie rzecz biorąc + wykonuje dodanie arytmetyczne, gdy jest to możliwe i łączy tylko wtedy, gdy oba wyrażenia są ciągi.
Jeśli ani wyrażenie jest Object, Visual Basic wykonuje następujące akcje.
Typy danych wyrażeń |
Działania przez kompilator |
Both expressions are numeric data types (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single, or Double) |
Dodaj.Typ danych wynik jest typu liczbowego, właściwe dla typów danych expression1 i expression2.Patrz tabele "Arytmetyki całkowitej" w Typy danych wyników operatora (Visual Basic). |
Oba wyrażenia są typuString |
Złączanie. |
Jedno wyrażenie jest typ danych numerycznych, a druga jest ciąg |
Jeśli Option Strict jest On, następnie wygenerować błąd kompilatora. Jeśli Option Strict jest Off, następnie niejawnie przekonwertować String do Double i dodać. Jeśli String nie można przekonwertować na Double, następnie throw InvalidCastException wyjątku. |
Jedno wyrażenie jest typ danych numerycznych, a drugiNothing (Visual Basic) |
Dodać, z Nothing wyceniane jako zero. |
Jedno wyrażenie jest ciągiem znaków, a druga jestNothing |
ZŁĄCZ.teksty, z Nothing wyceniane jako "". |
Jeśli jedno wyrażenie jest Object wyrażenie, Visual Basic wykonuje następujące akcje.
Typy danych wyrażeń |
Działania przez kompilator |
Objectwyrażenie zawiera wartość liczbową, a druga jest typ danych numerycznych |
Jeśli Option Strict jest On, następnie wygenerować błąd kompilatora. If Option Strict is Off, then add. |
Objectwyrażenie zawiera wartość liczbową, a druga jest typuString |
Jeśli Option Strict jest On, następnie wygenerować błąd kompilatora. Jeśli Option Strict jest Off, następnie niejawnie przekonwertować String do Double i dodać. Jeśli String nie można przekonwertować na Double, następnie throw InvalidCastException wyjątku. |
Objectwyrażenie zawiera ciąg, a druga jest typ danych numerycznych |
Jeśli Option Strict jest On, następnie wygenerować błąd kompilatora. Jeśli Option Strict jest Off, niejawnie przekonwertować ciągu Object do Double i dodać. Jeśli ciąg Object nie można przekonwertować na Double, następnie throw InvalidCastException wyjątku. |
Objectwyrażenie zawiera ciąg, a druga jest typuString |
Jeśli Option Strict jest On, następnie wygenerować błąd kompilatora. Jeśli Option Strict jest Off, następnie niejawnie przekonwertować Object do String i łączyć. |
Jeśli oba wyrażenia są Object wyrażeń, Visual Basic wykonuje następujące akcje (Option Strict Off tylko).
Typy danych wyrażeń |
Działania przez kompilator |
Obie Object wyrażeń przechowywać wartości numeryczne |
Dodaj. |
Obie Object wyrażenia są typuString |
Złączanie. |
Jeden Object wyrażenie zawiera wartość liczbową i przechowuje drugi ciąg |
Niejawnie przekonwertować ciągu Object do Double i dodać. Jeśli ciąg Object nie można przekonwertować na wartość liczbową, a następnie throw InvalidCastException wyjątku. |
Jeśli albo Object wyrażenie zostanie oszacowane jako nic nie lub DBNull, + operator traktuje ją jako String o wartości "".
[!UWAGA]
Kiedy używać + operatora, będzie mógł określić, czy wystąpi konkatenacji dodanie lub ciąg.Użyj & operatora konkatenacji wyeliminować niejasności i podaj kod elastycznym.
Przeciążenie
+ Operator może być nadmiernie, co oznacza, że klasy lub struktury można ponownie zdefiniować jego zachowanie podczas operand ma typ tej klasy lub struktury.Jeśli użyty kod używa tego operatora na klasy lub struktury, upewnij się, że rozumiesz działanie przedefiniować.Aby uzyskać więcej informacji, zobacz Procedury operatorów (Visual Basic).
Przykład
W poniższym przykładzie użyto + operatora dodawania numerów.Jeśli argumenty są zarówno numeryczne, Visual Basic oblicza wynik arytmetyczny.Wynik arytmetyczny reprezentuje sumę dwa operandy.
Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
Można również użyć + operator łączenia ciągów.Jeśli argumenty są oba ciągi, Visual Basic łączy je.Wynik konkatenacji reprezentuje jeden ciąg znaków, składający się z zawartości dwa operandy jeden po drugim.
Jeśli argumenty są mieszanych typów, wynik zależy od ustawienia z Option Strict — Instrukcja.Poniższy przykład ilustruje wynik po Option Strict jest On.
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.
Poniższy przykład ilustruje wynik po Option Strict jest Off.
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.
Aby wyeliminować niejasności, należy użyć & zamiast operatora + dla łączenia.
Zobacz też
Informacje
Concatenation — Operatory (Visual Basic)
Operatory arytmetyczne (Visual Basic)
Operatory według funkcji (Visual Basic)
Kolejność wykonywania działań (Visual Basic)