+ – operátor (Visual Basic)
Sečte dvě čísla nebo vrátí kladnou hodnotu číselného výrazu. Lze také použít ke zřetězení dvou řetězcových výrazů.
Syntaxe
expression1 + expression2
nebo
+expression1
Součástky
Pojem | definice |
---|---|
expression1 |
Povinný: Libovolný číselný nebo řetězcový výraz. |
expression2 |
Povinný argument, + pokud operátor nepočítá zápornou hodnotu. Libovolný číselný nebo řetězcový výraz. |
Výsledek
Pokud expression1
a expression2
jsou oba číselné, výsledek je jejich aritmetický součet.
Pokud expression2
chybí, +
je operátor unární identita operátor pro nezměněnou hodnotu výrazu. V tomto smyslu se operace skládá ze zachování znaménka expression1
, takže výsledek je záporný, pokud expression1
je negativní.
Pokud expression1
a expression2
jsou oba řetězce, výsledkem je zřetězení jejich hodnot.
Pokud expression1
se jedná expression2
o smíšené typy, akce, která byla provedena, závisí na jejich typech, jejich obsahu a nastavení příkazu Option Strict Statement. Další informace najdete v tabulkách v části Poznámky.
Podporované typy
Všechny číselné typy, včetně nepodepsaných a s plovoucí desetinabídkou a Decimal
a .String
Poznámky
Obecně platí, že provádí aritmetické sčítání, pokud je to možné, a zřetězí pouze v případě, +
že oba výrazy jsou řetězce.
Pokud ani jeden výraz není Object
, Visual Basic provede následující akce.
Datové typy výrazů | Akce podle kompilátoru |
---|---|
Oba výrazy jsou číselné datové typy (SByte , Byte , , UShort Short , Integer , UInteger , , Long , ULong , , Decimal , Single nebo Double ) |
Přidat. Datový typ výsledku je číselný typ vhodný pro datové typy expression1 a expression2 . Podívejte se na tabulky Integer Aritmetic v datových typech výsledků operátoru. |
Oba výrazy jsou typu String |
Zřetězit. |
Jeden výraz je číselný datový typ a druhý je řetězec. | Pokud Option Strict ano On , vygenerujte chybu kompilátoru.Pokud Option Strict je Off , pak implicitně převést String na Double a přidat.String Pokud nelze převést na Double , vyvolání InvalidCastException výjimky. |
Jeden výraz je číselný datový typ a druhý je Nothing | Přidejte hodnotu s Nothing hodnotou nula. |
Jeden výraz je řetězec a druhý je Nothing |
Zřetězení s Nothing hodnotou "". |
Pokud je jedním výrazem Object
výraz, jazyk Visual Basic provede následující akce.
Datové typy výrazů | Akce podle kompilátoru |
---|---|
Object Výraz obsahuje číselnou hodnotu a druhý je číselný datový typ. |
Pokud Option Strict ano On , vygenerujte chybu kompilátoru.Pokud Option Strict je , Off přidejte. |
Object Výraz obsahuje číselnou hodnotu a druhá hodnota je typu String |
Pokud Option Strict ano On , vygenerujte chybu kompilátoru.Pokud Option Strict je Off , pak implicitně převést String na Double a přidat.String Pokud nelze převést na Double , vyvolání InvalidCastException výjimky. |
Object Výraz obsahuje řetězec a druhý je číselný datový typ. |
Pokud Option Strict ano On , vygenerujte chybu kompilátoru.Pokud Option Strict je Off , pak implicitně převést řetězec Object na Double a přidat.Pokud řetězec Object nelze převést na Double , vyvolání InvalidCastException výjimky. |
Object Výraz obsahuje řetězec a druhý typ String |
Pokud Option Strict ano On , vygenerujte chybu kompilátoru.Pokud Option Strict je Off , pak implicitně převést Object na String a zřetězení. |
Pokud jsou Object
oba výrazy výrazy, jazyk Visual Basic provede následující akce (Option Strict Off
pouze).
Datové typy výrazů | Akce podle kompilátoru |
---|---|
Oba Object výrazy obsahují číselné hodnoty. |
Přidat. |
Oba Object výrazy jsou typu String |
Zřetězit. |
Jeden Object výraz obsahuje číselnou hodnotu a druhý obsahuje řetězec. |
Implicitně převeďte řetězec Object na Double a přidejte.Pokud řetězec Object nelze převést na číselnou hodnotu, vyvoláte InvalidCastException výjimku. |
Pokud se výraz Object
vyhodnotí jako Nothing nebo DBNull, +
operátor ho považuje za String
hodnotu "".
Poznámka:
Při použití operátoru +
možná nebudete moct určit, jestli dojde ke zřetězení sčítání nebo řetězce. Pomocí operátoru &
zřetězení eliminujte nejednoznačnost a poskytněte kód pro samodokumentování.
Přetížení
Operátor +
může být přetížen, což znamená, že třída nebo struktura mohou předefinovat jeho chování, pokud operand má typ této třídy nebo struktury. Pokud váš kód používá tento operátor pro takovou třídu nebo strukturu, ujistěte se, že rozumíte jeho předdefinované chování. Další informace naleznete v tématu Procedury operátoru.
Příklad
Následující příklad používá +
operátor k sčítání čísel. Pokud jsou operandy oba číselné, Visual Basic vypočítá aritmetický výsledek. Aritmetický výsledek představuje součet dvou operandů.
Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
Operátor můžete také použít +
ke zřetězení řetězců. Pokud jsou operandy oba řetězce, Visual Basic je zřetězí. Výsledek zřetězení představuje jeden řetězec skládající se z obsahu obou operandů jeden za druhým.
Pokud jsou operandy smíšených typů, výsledek závisí na nastavení příkazu Option Strict. Následující příklad znázorňuje výsledek, pokud Option Strict
je 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.
Následující příklad znázorňuje výsledek, pokud Option Strict
je 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.
Chcete-li odstranit nejednoznačnost, měli byste místo zřetězení použít &
operátor +
.