+ – 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 Decimala .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, , UShortShort, Integer, UInteger, , Long, ULong, , Decimal, Singlenebo 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 , Offpř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 + .

Viz také