Dela via


+ Operator (Visual Basic)

Lägger till två tal eller returnerar det positiva värdet för ett numeriskt uttryck. Kan också användas för att sammanfoga två stränguttryck.

Syntax

expression1 + expression2

eller

+expression1  

Delar

Period Definition
expression1 Obligatoriska. Numeriska uttryck eller stränguttryck.
expression2 Krävs om inte operatorn + beräknar ett negativt värde. Numeriska uttryck eller stränguttryck.

Resultat

Om expression1 och expression2 båda är numeriska är resultatet deras aritmetiska summa.

Om expression2 den saknas är operatorn + den oföränderliga identitetsoperatorn för det oförändrade värdet för ett uttryck. I den meningen består åtgärden av att behålla tecknet för expression1, så resultatet är negativt om expression1 det är negativt.

Om expression1 och expression2 är båda strängarna är resultatet sammanlänkningen av deras värden.

Om expression1 och expression2 är av blandade typer beror den åtgärd som vidtas på deras typer, deras innehåll och inställningen för alternativet Strikt-instruktion. Mer information finns i tabellerna i "Anmärkningar".

Typer som stöds

Alla numeriska typer, inklusive de osignerade och flyttalstyperna och Decimal, och String.

Kommentarer

I allmänhet + utför aritmetiska tillägg när det är möjligt och sammanfogar endast när båda uttrycken är strängar.

Om inget av uttrycken är ett Object, vidtar Visual Basic följande åtgärder.

Datatyper av uttryck Åtgärd av kompilator
Båda uttrycken är numeriska datatyper (SByte, , ShortByte, UShort, Integer, UInteger, Long, , DecimalULong, Singleeller Double) Lägg till Resultatdatatypen är en numerisk typ som är lämplig för datatyperna expression1 och expression2. Se tabellerna "Heltals-Aritmetik" i Datatyper av operatorresultat.
Båda uttrycken är av typen String Sammanfoga.
Ett uttryck är en numerisk datatyp och det andra är en sträng Om Option Strict är Ongenererar du ett kompilatorfel.

Om Option Strict är Offkonverterar String du implicit till Double och lägger till.

Om det String inte går att konvertera till Doublegenererar du ett InvalidCastException undantag.
Ett uttryck är en numerisk datatyp och det andra är Ingenting Lägg till med Nothing värde som noll.
Ett uttryck är en sträng och det andra är Nothing Sammanfoga med Nothing värderad som "".

Om ett uttryck är ett Object uttryck utför Visual Basic följande åtgärder.

Datatyper av uttryck Åtgärd av kompilator
Object uttrycket innehåller ett numeriskt värde och det andra är en numerisk datatyp Om Option Strict är Ongenererar du ett kompilatorfel.

Om Option Strict är Offlägger du till.
Object uttrycket innehåller ett numeriskt värde och det andra är av typen String Om Option Strict är Ongenererar du ett kompilatorfel.

Om Option Strict är Offkonverterar String du implicit till Double och lägger till.

Om det String inte går att konvertera till Doublegenererar du ett InvalidCastException undantag.
Object uttrycket innehåller en sträng och det andra är en numerisk datatyp Om Option Strict är Ongenererar du ett kompilatorfel.

Om Option Strict är Offkonverterar du implicit strängen Object till Double och lägger till.

Om strängen Object inte kan konverteras till Doublegenererar du ett InvalidCastException undantag.
Object uttrycket innehåller en sträng och det andra är av typen String Om Option Strict är Ongenererar du ett kompilatorfel.

Om Option Strict är Offkonverterar Object du implicit till String och sammanfogar.

Om båda uttrycken är Object uttryck utför Visual Basic följande åtgärder (Option Strict Off endast).

Datatyper av uttryck Åtgärd av kompilator
Båda Object uttrycken innehåller numeriska värden Lägg till
Båda Object uttrycken är av typen String Sammanfoga.
Ett Object uttryck innehåller ett numeriskt värde och det andra innehåller en sträng Konvertera strängen Object implicit till Double och lägg till.

Om strängen Object inte kan konverteras till ett numeriskt värde utlöser du ett InvalidCastException undantag.

Om något Object av uttrycken utvärderas till Ingenting eller DBNullbehandlar operatorn + det som ett String med värdet "".

Kommentar

När du använder operatorn + kanske du inte kan avgöra om addition eller strängsammanfogning ska ske. Använd operatorn & för sammanfogning för att eliminera tvetydighet och för att tillhandahålla självdokumenterande kod.

Överbelastning

Operatorn + kan överbelastas, vilket innebär att en klass eller struktur kan omdefiniera sitt beteende när en operande har den typen av klass eller struktur. Om din kod använder den här operatorn i en sådan klass eller struktur bör du se till att du förstår dess omdefinierade beteende. Mer information finns i Operatorprocedurer.

Exempel

I följande exempel används operatorn + för att lägga till tal. Om operanderna båda är numeriska beräknar Visual Basic det aritmetiska resultatet. Det aritmetiska resultatet representerar summan av de två operanderna.

Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.

Du kan också använda operatorn + för att sammanfoga strängar. Om operanderna är båda strängarna sammanfogar Visual Basic dem. Sammanfogningsresultatet representerar en enda sträng som består av innehållet i de två operanderna en efter en.

Om operanderna är av blandade typer beror resultatet på inställningen för alternativet Strikt-instruktion. I följande exempel visas resultatet när Option Strict är 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. 

I följande exempel visas resultatet när Option Strict är 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.

För att eliminera tvetydighet bör du använda operatorn & i stället + för för sammanfogning.

Se även