+ Operátor (Visual Basic)
Két számot ad hozzá, vagy egy numerikus kifejezés pozitív értékét adja vissza. Két sztringkifejezés összefűzésére is használható.
Syntax
expression1 + expression2
vagy
+expression1
Részek
Időszak | Definíció |
---|---|
expression1 |
Szükséges. Bármilyen numerikus vagy sztringkifejezés. |
expression2 |
Kötelező, kivéve, ha az + operátor negatív értéket számít ki. Bármilyen numerikus vagy sztringkifejezés. |
Eredmény
Ha expression1
és expression2
mindkettő numerikus, akkor az eredmény az aritmetikai összegük.
Ha expression2
nincs megadva, az +
operátor a kifejezés változatlan értékének nem megfelelő identitás operátora. Ebben az értelemben a művelet az előjel expression1
megőrzéséből áll, így az eredmény negatív, ha expression1
negatív.
Ha expression1
mindkét expression2
sztring, akkor az eredmény az értékek összefűzése.
expression2
Vegyes expression1
típusok esetén a végrehajtott művelet a típusuktól, a tartalmától és az Option Strict Utasítás beállításától függ. További információkért tekintse meg a "Megjegyzések" című témakör táblázatait.
Támogatott típusok
Minden numerikus típus, beleértve az aláíratlan és a lebegőpontos típusokat és Decimal
a String
.
Megjegyzések
Általában +
lehetőség szerint aritmetikai összeadást hajt végre, és csak akkor fűz össze, ha mindkét kifejezés sztring.
Ha egyik kifejezés sem egy Object
, a Visual Basic a következő műveleteket hajtja végre.
A kifejezések adattípusai | Művelet fordító szerint |
---|---|
Mindkét kifejezés numerikus adattípus (SByte , , Byte , Short , UShort , Integer UInteger , Long , ULong , Decimal , , Single vagy Double ) |
Hozzáadása. Az eredmény adattípusa egy numerikus típus, amely megfelel az és expression1 expression2 a . Tekintse meg az "Egész számtani" táblákat az operátoreredmények adattípusaiban. |
Mindkét kifejezés típusa String |
Összefűz. |
Az egyik kifejezés numerikus adattípus, a másik pedig egy sztring | Ha Option Strict igen On , akkor hozzon létre egy fordítóhibát.Ha Option Strict igen Off , akkor implicit módon konvertálja a String formátumot Double , és adja hozzá.Ha a String nem konvertálható Double , akkor kivételt InvalidCastException kell eredményeznie. |
Az egyik kifejezés numerikus adattípus, a másik a Semmi | Hozzáadás nullával.Nothing |
Az egyik kifejezés egy sztring, a másik pedig Nothing |
Összefűzve, Nothing """-ként értékelve. |
Ha egy kifejezés kifejezés Object
, a Visual Basic a következő műveleteket hajtja végre.
A kifejezések adattípusai | Művelet fordító szerint |
---|---|
Object a kifejezés numerikus értéket tartalmaz, a másik pedig egy numerikus adattípus |
Ha Option Strict igen On , akkor hozzon létre egy fordítóhibát.Ha Option Strict igen Off , akkor adja hozzá. |
Object a kifejezés numerikus értéket tartalmaz, a másik típus pedig String |
Ha Option Strict igen On , akkor hozzon létre egy fordítóhibát.Ha Option Strict igen Off , akkor implicit módon konvertálja a String formátumot Double , és adja hozzá.Ha a String nem konvertálható Double , akkor kivételt InvalidCastException kell eredményeznie. |
Object a kifejezés egy sztringet tartalmaz, a másik egy numerikus adattípus |
Ha Option Strict igen On , akkor hozzon létre egy fordítóhibát.Ha Option Strict igen Off , akkor implicit módon konvertálja a sztringet Object Double , és adja hozzá.Ha a sztring Object nem konvertálható, Double akkor kivételt InvalidCastException kell tenni. |
Object a kifejezés egy sztringet tartalmaz, a másik típus pedig String |
Ha Option Strict igen On , akkor hozzon létre egy fordítóhibát.Ha Option Strict igenOff , akkor implicit módon konvertálja String Object és összefűzi. |
Ha mindkét kifejezés Object
kifejezés, a Visual Basic a következő műveleteket hajtja végre (Option Strict Off
csak).
A kifejezések adattípusai | Művelet fordító szerint |
---|---|
Mindkét Object kifejezés numerikus értékeket tartalmaz |
Hozzáadása. |
Mindkét Object kifejezés típusa String |
Összefűz. |
Az egyik Object kifejezés numerikus értéket tartalmaz, a másik pedig egy sztringet |
Implicit módon konvertálja a sztringet Object Double , és adja hozzá.Ha a sztring Object nem konvertálható numerikus értékké, akkor adjon ki kivételt InvalidCastException . |
Ha bármelyik Object
kifejezés a Semmi vagy a "DBNull" értéket adja vissza, az +
operátor "" értékkel kezeli.String
Feljegyzés
Az operátor használatakor +
előfordulhat, hogy nem tudja meghatározni, hogy összeadás vagy sztringösszefűzés történik-e. Az összefűzéshez használja az &
operátort a kétértelműség megszüntetéséhez és az önaláírási kód megadásához.
Túlterhelés
Az +
operátor túlterhelhető, ami azt jelenti, hogy egy osztály vagy struktúra újradefiniálta a viselkedését, ha egy operandus az adott osztály vagy struktúra típusával rendelkezik. Ha a kód egy ilyen osztályon vagy struktúrán használja ezt az operátort, győződjön meg arról, hogy tisztában van az újradefiniált viselkedésével. További információ: Operátori eljárások.
Példa
Az alábbi példa az operátort használja számok +
hozzáadására. Ha az operandusok numerikusak, a Visual Basic kiszámítja az aritmetikai eredményt. Az aritmetikai eredmény a két operandus összegét jelöli.
Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
Az operátorral +
sztringeket is összefűzhet. Ha az operandusok mindkét sztringek, a Visual Basic összefűzi őket. Az összefűzés eredménye egyetlen sztringet jelöl, amely a két operandus tartalmát tartalmazza egymás után.
Ha az operandusok vegyes típusúak, az eredmény az Option Strict Utasítás beállításától függ. Az alábbi példa az eredményt szemlélteti, ha Option Strict
igen 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.
Az alábbi példa az eredményt szemlélteti, ha Option Strict
igen 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.
A kétértelműség kiküszöböléséhez az összefűzés helyett +
az &
operátort kell használnia.