+ — Operator (Visual Basic)
Dodaje dwie liczby lub zwraca wartość dodatnią wyrażenia liczbowego. Można również używać do łączenia dwóch wyrażeń ciągu.
Składnia
expression1 + expression2
lub
+expression1
generatora
Termin | Definicja |
---|---|
expression1 |
Wymagany. Dowolne wyrażenie liczbowe lub ciągowe. |
expression2 |
Wymagane, chyba że + operator oblicza wartość ujemną. Dowolne wyrażenie liczbowe lub ciągowe. |
Result
Jeśli expression1
i expression2
są liczbowe, wynikiem jest suma arytmetyczna.
Jeśli expression2
jest nieobecny, +
operator jest operatorem tożsamości jednoargumentowej dla niezmienionej wartości wyrażenia. W tym sensie operacja polega na zachowaniu expression1
znaku , więc wynik jest ujemny, jeśli expression1
jest ujemny.
Jeśli expression1
i expression2
są ciągami, wynikiem jest łączenie ich wartości.
Jeśli expression1
i expression2
są typami mieszanymi, podjęta akcja zależy od ich typów, ich zawartości i ustawienia instrukcji Option Strict. Aby uzyskać więcej informacji, zobacz tabele w sekcji "Uwagi".
Obsługiwane typy
Wszystkie typy liczbowe, w tym typy niepodpisane i zmiennoprzecinkowe oraz Decimal
, i String
.
Uwagi
Ogólnie rzecz biorąc, wykonuje dodawanie arytmetyczne, +
gdy jest to możliwe, i łączy tylko wtedy, gdy oba wyrażenia są ciągami.
Jeśli żadne wyrażenie nie jest wyrażeniem Object
, program Visual Basic wykonuje następujące akcje.
Typy danych wyrażeń | Akcja kompilatora |
---|---|
Oba wyrażenia są typami danych liczbowych (SByte , Byte , Short Long Integer UShort ULong Decimal UInteger Single lub )Double |
Dodaj. Typ danych wynikowych jest typem liczbowym odpowiednim dla typów expression1 danych i expression2 . Zobacz tabele "Arytmetyka całkowita" w obszarze Typy danych wyników operatorów. |
Oba wyrażenia są typu String |
Złączyć. |
Jedno wyrażenie jest typem danych liczbowych, a drugi jest ciągiem | Jeśli Option Strict ma wartość On , wygeneruj błąd kompilatora.Jeśli Option Strict parametr to Off , niejawnie przekonwertuj element String na Double i dodaj.Jeśli nie można przekonwertować elementu String na Double , zgłosić InvalidCastException wyjątek. |
Jedno wyrażenie jest typem danych liczbowych, a drugi to Nic | Dodaj wartość z wartością Nothing zero. |
Jedno wyrażenie jest ciągiem, a drugie Nothing |
Połącz, z wartością Nothing "". |
Jeśli jedno wyrażenie jest wyrażeniem Object
, visual basic wykonuje następujące akcje.
Typy danych wyrażeń | Akcja kompilatora |
---|---|
Object Wyrażenie zawiera wartość liczbową, a druga jest typem danych liczbowych |
Jeśli Option Strict ma wartość On , wygeneruj błąd kompilatora.Jeśli Option Strict ma wartość Off , dodaj. |
Object wyrażenie zawiera wartość liczbową, a druga jest typu String |
Jeśli Option Strict ma wartość On , wygeneruj błąd kompilatora.Jeśli Option Strict parametr to Off , niejawnie przekonwertuj element String na Double i dodaj.Jeśli nie można przekonwertować elementu String na Double , zgłosić InvalidCastException wyjątek. |
Object Wyrażenie zawiera ciąg, a drugi jest typem danych liczbowych |
Jeśli Option Strict ma wartość On , wygeneruj błąd kompilatora.Jeśli Option Strict parametr to Off , niejawnie przekonwertuj ciąg Object na Double i dodaj.Jeśli nie można przekonwertować ciągu Object na Double , zgłosić InvalidCastException wyjątek. |
Object Wyrażenie zawiera ciąg, a drugi jest typu String |
Jeśli Option Strict ma wartość On , wygeneruj błąd kompilatora.Jeśli Option Strict wartość to Off , niejawnie przekonwertuj Object na String i połącz. |
Jeśli oba wyrażenia są Object
wyrażeniami, program Visual Basic wykonuje następujące akcje (Option Strict Off
tylko).
Typy danych wyrażeń | Akcja kompilatora |
---|---|
Oba Object wyrażenia przechowują wartości liczbowe |
Dodaj. |
Oba Object wyrażenia są typu String |
Złączyć. |
Jedno Object wyrażenie zawiera wartość liczbową, a druga zawiera ciąg |
Niejawnie przekonwertuj ciąg Object na Double i dodaj.Jeśli nie można przekonwertować ciągu Object na wartość liczbową, zgłosić InvalidCastException wyjątek. |
Object
Jeśli wyrażenie zwróci wartość Nic lub DBNull, +
operator traktuje go jako String
wartość "".
Uwaga
Jeśli używasz +
operatora, możesz nie być w stanie określić, czy wystąpi połączenie dodawania lub łączenia ciągów. &
Użyj operatora do łączenia, aby wyeliminować niejednoznaczność i udostępnić kod samodzielnego dokumentowania.
Przeciążenie
Operator +
może być przeciążony, co oznacza, że klasa lub struktura może ponownie zdefiniować jego zachowanie, gdy operand ma typ tej klasy lub struktury. Jeśli kod używa tego operatora w takiej klasie lub strukturze, upewnij się, że rozumiesz jego ponownie zdefiniowane zachowanie. Aby uzyskać więcej informacji, zobacz Procedury operatorów.
Przykład
W poniższym przykładzie użyto operatora w celu dodania +
liczb. Jeśli operandy są zarówno liczbowe, program Visual Basic oblicza wynik arytmetyczny. Wynik arytmetyczny reprezentuje sumę dwóch operandów.
Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
Możesz również użyć +
operatora do łączenia ciągów. Jeśli operandy są ciągami, program Visual Basic łączy je. Wynik łączenia reprezentuje pojedynczy ciąg składający się z zawartości dwóch operandów jeden po drugim.
Jeśli operandy mają mieszane typy, wynik zależy od ustawienia instrukcji Option Strict. Poniższy przykład ilustruje wynik , gdy Option Strict
ma wartość 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 , gdy Option Strict
ma wartość 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ć niejednoznaczność, należy użyć &
operatora zamiast +
do łączenia.