+ 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 , , Short Byte , UShort , Integer , UInteger , Long , , Decimal ULong , Single eller 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 On genererar du ett kompilatorfel.Om Option Strict är Off konverterar String du implicit till Double och lägger till.Om det String inte går att konvertera till Double genererar 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 On genererar du ett kompilatorfel.Om Option Strict är Off lägger du till. |
Object uttrycket innehåller ett numeriskt värde och det andra är av typen String |
Om Option Strict är On genererar du ett kompilatorfel.Om Option Strict är Off konverterar String du implicit till Double och lägger till.Om det String inte går att konvertera till Double genererar du ett InvalidCastException undantag. |
Object uttrycket innehåller en sträng och det andra är en numerisk datatyp |
Om Option Strict är On genererar du ett kompilatorfel.Om Option Strict är Off konverterar du implicit strängen Object till Double och lägger till.Om strängen Object inte kan konverteras till Double genererar du ett InvalidCastException undantag. |
Object uttrycket innehåller en sträng och det andra är av typen String |
Om Option Strict är On genererar du ett kompilatorfel.Om Option Strict är Off konverterar 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.