Delen via


+ 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 Objectis, voert Visual Basic de volgende acties uit.

Gegevenstypen van expressies Actie per compiler
Beide expressies zijn numerieke gegevenstypen (, , , , , Integer, UInteger, LongDecimalULong, , of SingleDouble) UShortShortByteSByte Toevoegen. Het resultaatgegevenstype is een numeriek type dat geschikt is voor de gegevenstypen en expression1expression2. 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.

Zie ook