+ – operátor (Visual Basic)

Přidá 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ů.

Syntax

expression1 + expression2

nebo

+expression1  

Součásti

Pojem Definice
expression1 Povinná hodnota. Libovolný numerický nebo řetězcový výraz.
expression2 Povinné, pokud + operátor nevypočítá zápornou hodnotu. Libovolný numerický nebo řetězcový výraz.

Výsledek

Pokud expression1 a expression2 jsou oba číselné, výsledek je aritmetický součet.

Pokud expression2 chybí, + operátor je unární operátor identity pro nezměněnou hodnotu výrazu. V tomto smyslu se operace skládá z zachování znaménka expression1 , takže výsledek je záporný, pokud expression1 je záporná.

Pokud expression1 a expression2 jsou oba řetězce, je výsledkem zřetězení jejich hodnot.

expression1V případě expression2 smíšených typů závisí akce prováděná na jejich typech, jejich obsahu a nastavení příkazu Option Strict. Další informace najdete v tabulkách v části "poznámky".

Podporované typy

Všechny číselné typy, včetně typů unsigned a float-Point a Decimal a String .

Poznámky

Obecně + provádí aritmetické sčítání, pokud je to možné, a zřetězení pouze v případě, že oba výrazy jsou řetězce.

pokud žádný 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 , Short , UShort , Integer , UInteger , Long , ULong , Decimal , Single , nebo Double ). Přidat Výsledný datový typ je číselný typ odpovídající datovým typům expression1 a expression2 . Podívejte se na tabulky "celočíselné aritmetické" 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 je On , vygenerujte chybu kompilátoru.

Pokud Option Strict je Off , pak implicitně převeďte String na Double a přidat.

Pokud String nelze převést na Double , vyvolejte InvalidCastException výjimku.
Jeden výraz je numerický datový typ a druhý není nic Přidejte s Nothing hodnotou nula.
Jeden výraz je řetězec a druhý je Nothing CONCATENATE s hodnotou " Nothing ".

pokud je jedním výrazem výraz Object , 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 je On , vygenerujte chybu kompilátoru.

Pokud Option Strict je Off , přidejte.
Object výraz obsahuje číselnou hodnotu a druhý je typu. String Pokud Option Strict je On , vygenerujte chybu kompilátoru.

Pokud Option Strict je Off , pak implicitně převeďte String na Double a přidat.

Pokud String nelze převést na Double , vyvolejte InvalidCastException výjimku.
Object výraz obsahuje řetězec a druhý je číselný datový typ. Pokud Option Strict je On , vygenerujte chybu kompilátoru.

Pokud Option Strict je Off , pak implicitně převeďte řetězec Object na Double a přidat.

Pokud řetězec Object nelze převést na Double , vyvolejte InvalidCastException výjimku.
Object výraz obsahuje řetězec a druhý je typu String Pokud Option Strict je On , vygenerujte chybu kompilátoru.

Pokud Option Strict je Off , pak implicitní převod Object na String a zřetězení.

pokud jsou oba výrazy Object výrazy, Visual Basic provádí následující akce ( Option Strict Off pouze).

Datové typy výrazů Akce podle kompilátoru
Oba Object výrazy uchovávají čí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řidat.

Pokud řetězec Object nelze převést na číselnou hodnotu, vyvolejte InvalidCastException výjimku.

Pokud se některý Object výraz vyhodnotí jako Nothing nebo DBNull , + operátor ho považuje za String s hodnotou "".

Poznámka

Při použití + operátoru nemusí být možné určit, zda dojde k přidání nebo zřetězení řetězců. Použijte & operátor pro zřetězení k eliminaci nejednoznačnosti a k poskytnutí kódu pro samoobslužné dokumenty.

Přetížení

+Operátor může být přetížen, což znamená, že třída nebo struktura může předefinovat své chování, pokud má operand typ této třídy nebo struktury. Pokud váš kód používá tento operátor na takové třídě nebo struktuře, ujistěte se, že rozumíte jeho předefinovanému chování. Další informace naleznete v tématu procedury operátorů.

Příklad

Následující příklad používá + operátor pro přidání čísel. pokud jsou operandy čí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 + k zřetězení řetězců. pokud jsou operandy řetězcem, Visual Basic je zřetězí. Výsledek zřetězení představuje jeden řetězec skládající se z obsahu dvou operandů jednoho po druhém.

Pokud jsou operandy smíšeného typu, výsledek závisí na nastavení příkazu Option Strict. Následující příklad ilustruje 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 ilustruje 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 eliminovat nejednoznačnost, použijte & místo + pro zřetězení operátor.

Viz také