+ Operator (Visual Basic)
Hiermee worden twee getallen toegevoegd of wordt de positieve waarde van een numerieke expressie geretourneerd. Kan ook worden gebruikt om twee tekenreeksexpressies samen te voegen.
Syntaxis
expression1 + expression2
or
+expression1
generator
Term | Definitie |
---|---|
expression1 |
Vereist. Elke numerieke of tekenreeksexpressie. |
expression2 |
Vereist tenzij de + operator een negatieve waarde berekent. Elke numerieke of tekenreeksexpressie. |
Resultaat
Als expression1
en expression2
beide numeriek zijn, is het resultaat de rekenkundige som.
Als expression2
deze niet aanwezig is, is de +
operator de unaire id-operator voor de ongewijzigde waarde van een expressie. In deze zin bestaat de bewerking uit het behouden van het teken van expression1
, dus het resultaat is negatief als expression1
negatief is.
Als expression1
en expression2
beide tekenreeksen zijn, is het resultaat de samenvoeging van hun waarden.
Als expression1
en expression2
van gemengde typen zijn, is de actie die wordt ondernomen afhankelijk van de typen, de inhoud en de instelling van de optie strikte instructie. Zie de tabellen in Opmerkingen voor meer informatie.
Ondersteunde typen
Alle numerieke typen, inclusief de niet-ondertekende en drijvendekommatypen en Decimal
, en String
.
Opmerkingen
In het algemeen +
wordt rekenkundige optellen indien mogelijk uitgevoerd en wordt alleen samengevoegd wanneer beide expressies tekenreeksen zijn.
Als geen van beide expressies een Object
is, voert Visual Basic de volgende acties uit.
Gegevenstypen van expressies | Actie per compiler |
---|---|
Beide expressies zijn numerieke gegevenstypen (, , , , , Integer , UInteger , Long Decimal ULong , , of Single Double ) UShort Short Byte SByte |
Toevoegen. Het resultaatgegevenstype is een numeriek type dat geschikt is voor de gegevenstypen en expression1 expression2 . Zie de tabellen Integer Arithmetic in Gegevenstypen operatorresultaten. |
Beide expressies zijn van het type String |
Tekst.samenvoegen. |
De ene expressie is een numeriek gegevenstype en de andere is een tekenreeks | Als Option Strict dat het is On , genereert u een compilerfout.Als Option Strict dat het is Off , converteert u impliciet het String naar Double en het toevoegen.Als het String niet kan worden geconverteerd naar Double , genereert u een InvalidCastException uitzondering. |
De ene expressie is een numeriek gegevenstype en de andere is niets | Voeg toe, met Nothing een waarde als nul. |
De ene expressie is een tekenreeks en de andere is Nothing |
Samenvoegen, met Nothing de waarde ''. |
Als één expressie een Object
expressie is, voert Visual Basic de volgende acties uit.
Gegevenstypen van expressies | Actie per compiler |
---|---|
Object expressie bevat een numerieke waarde en de andere is een numeriek gegevenstype |
Als Option Strict dat het is On , genereert u een compilerfout.Als Option Strict dat het is Off , voegt u het toe. |
Object expressie bevat een numerieke waarde en het andere is van het type String |
Als Option Strict dat het is On , genereert u een compilerfout.Als Option Strict dat het is Off , converteert u impliciet het String naar Double en het toevoegen.Als het String niet kan worden geconverteerd naar Double , genereert u een InvalidCastException uitzondering. |
Object expressie bevat een tekenreeks en de andere is een numeriek gegevenstype |
Als Option Strict dat het is On , genereert u een compilerfout.Als Option Strict dat het is Off , converteert u de tekenreeks Object impliciet naar Double en voegt u deze toe.Als de tekenreeks Object niet kan worden geconverteerd naar Double , genereert u een InvalidCastException uitzondering. |
Object expressie bevat een tekenreeks en het andere is van het type String |
Als Option Strict dat het is On , genereert u een compilerfout.Als Option Strict dat het is Off , converteert Object u impliciet naar String en voegt u deze samen. |
Als beide expressies expressies zijn Object
, voert Visual Basic de volgende acties uit (Option Strict Off
alleen).
Gegevenstypen van expressies | Actie per compiler |
---|---|
Beide Object expressies bevatten numerieke waarden |
Toevoegen. |
Beide Object expressies zijn van het type String |
Tekst.samenvoegen. |
De ene Object expressie bevat een numerieke waarde en de andere bevat een tekenreeks |
Converteer de tekenreeks Object impliciet naar Double en voeg deze toe.Als de tekenreeks Object niet kan worden geconverteerd naar een numerieke waarde, genereert u een InvalidCastException uitzondering. |
Als een van beide Object
expressies resulteert in Niets of DBNull, wordt deze door de +
operator als een String
waarde van '' behandeld.
Notitie
Wanneer u de +
operator gebruikt, kunt u mogelijk niet bepalen of toevoeging of tekenreekssamenvoeging plaatsvindt. Gebruik de &
operator voor samenvoeging om dubbelzinnigheid te voorkomen en om zelfdocumentatiecode te bieden.
Overbelasting
De +
operator kan overbelast worden, wat betekent dat een klasse of structuur het gedrag ervan opnieuw kan definiëren wanneer een operand het type van die klasse of structuur heeft. Als uw code deze operator gebruikt voor een dergelijke klasse of structuur, moet u het opnieuw gedefinieerde gedrag ervan begrijpen. Zie Operator Procedures voor meer informatie.
Opmerking
In het volgende voorbeeld wordt de +
operator gebruikt om getallen toe te voegen. Als de operanden beide numeriek zijn, berekent Visual Basic het rekenkundige resultaat. Het rekenkundige resultaat vertegenwoordigt de som van de twee operanden.
Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
U kunt de +
operator ook gebruiken om tekenreeksen samen te voegen. Als de operanden beide tekenreeksen zijn, voegt Visual Basic deze samen. Het samenvoegingsresultaat vertegenwoordigt één tekenreeks die bestaat uit de inhoud van de twee operanden na de andere.
Als de operanden van gemengde typen zijn, is het resultaat afhankelijk van de instelling van de Optie strikte instructie. In het volgende voorbeeld ziet u het resultaat wanneer Option Strict
dit is 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.
In het volgende voorbeeld ziet u het resultaat wanneer Option Strict
dit is 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.
Als u dubbelzinnigheid wilt voorkomen, moet u de &
operator gebruiken in plaats van +
voor samenvoeging.