Megosztás a következőn keresztül:


+ 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 expression1megő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 Decimala 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, IntegerUInteger, Long, ULong, Decimal, , Singlevagy Double) Hozzáadása. Az eredmény adattípusa egy numerikus típus, amely megfelel az és expression1expression2a . 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 ObjectDouble , és adja hozzá.

Ha a sztring Object nem konvertálható, Doubleakkor 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 StringObject é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 ObjectDouble , é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.

Lásd még