加入兩個數位,或傳回數值表達式的正值。 也可以用來串連兩個字串表達式。
語法
expression1 + expression2
或
+expression1
組件
| 術語 | 定義 |
|---|---|
expression1 |
必須的。 任何數值或字串表達式。 |
expression2 |
除非 + 運算元正在計算負值,否則為必要。 任何數值或字串表達式。 |
結果
如果 expression1 和 expression2 都是數值,則結果會是其算術總和。
如果 expression2 不存在, + 運算符是表達式未變更值的 一元 識別運算符。 從這個意義上說,作業是由 保留的 expression1正負號所組成,因此如果 為負數,則結果為負 expression1 數。
如果 expression1 和 expression2 都是字串,則結果是其值的串連。
如果 expression1 和 expression2 屬於混合類型,所採取的動作取決於其類型、其內容,以及 Option Strict語句的設定。 如需詳細資訊,請參閱中的數據表。
支援的類型
所有數值類型,包括不帶正負號和浮點類型,以及 Decimal和 String。
備註
一般而言, + 盡可能執行算術加法,而且只有在兩個表達式都是字串時串連。
如果兩個 Object表達式都不是 ,Visual Basic 會採取下列動作。
| 表達式的數據類型 | 依編譯程式執行的動作 |
|---|---|
這兩個運算式都是數值數據類型(SByte、、ByteShort、、IntegerUShort、、UInteger、DecimalLongULong、、 Single或 Double) |
[ 新增 ]。 結果數據類型是適用於和expression2數據類型的expression1數值類型。 請參閱 運算子結果數據類型中的「整數算術」數據表。 |
這兩個表達式的類型都是 String |
連接。 |
| 一個表達式是數值數據類型,另一個是字串 | 如果 Option Strict 為 On,則會產生編譯程序錯誤。如果 Option Strict 為 Off,則隱含地將 轉換成 DoubleString 並新增 。String如果 無法轉換成 Double,則擲回例外狀況InvalidCastException。 |
| 其中一個表達式是數值數據類型,另一個則為 Nothing | 新增,值為 Nothing 零。 |
一個表達式是字串,另一個是 Nothing |
串連,值為 Nothing “”。 |
如果一個表達式是 Object 表達式,Visual Basic 會採取下列動作。
| 表達式的數據類型 | 依編譯程式執行的動作 |
|---|---|
Object 表達式保留數值,另一個是數值數據類型 |
如果 Option Strict 為 On,則會產生編譯程序錯誤。如果 Option Strict 為 Off,則新增 。 |
Object 表達式保留數值,另一個為 類型 String |
如果 Option Strict 為 On,則會產生編譯程序錯誤。如果 Option Strict 為 Off,則隱含地將 轉換成 DoubleString 並新增 。String如果 無法轉換成 Double,則擲回例外狀況InvalidCastException。 |
Object 表達式保存字串,另一個是數值數據類型 |
如果 Option Strict 為 On,則會產生編譯程序錯誤。如果 Option Strict 為 Off,則隱含地將字串ObjectDouble轉換成 並新增。如果字串 Object 無法轉換成 Double,則擲回例外狀況 InvalidCastException 。 |
Object 表達式保存字串,另一個是 型別 String |
如果 Option Strict 為 On,則會產生編譯程序錯誤。如果 Option Strict 為 Off,則隱含地轉換成 StringObject 並串連。 |
如果這兩個表達式都是 Object 表達式,Visual Basic 會採取下列動作(Option Strict Off 僅限)。
| 表達式的數據類型 | 依編譯程式執行的動作 |
|---|---|
這兩個表達式都會 Object 保存數值 |
[ 新增 ]。 |
這兩 Object 個表達式的類型都是 String |
連接。 |
一個表達式保存數值,另一 Object 個表達式保留字串 |
以隱含方式將字串ObjectDouble轉換成 並新增。如果字串 Object 無法轉換成數值,則擲回例外狀況 InvalidCastException 。 |
如果表示式 Object 評估為 Nothing 或 DBNull,運算子 + 會將它 String 視為值為 “” 的 。
備註
當您使用 + 運算符時,可能無法判斷是否會發生加法或字串串連。
&使用運算符進行串連,以消除模棱兩可,並提供自我記錄程序代碼。
重載
+運算子可以多載,這表示當作數具有該類別或結構的類型時,類別或結構可以重新定義其行為。 如果您的程式代碼在這類類別或結構上使用這個運算符,請務必瞭解其重新定義的行為。 如需詳細資訊,請參閱 運算符程式。
範例
下列範例會使用 + 運算符來新增數位。 如果作數都是數值,Visual Basic 會計算算術結果。 算術結果代表兩個作數的總和。
Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
您也可以使用 + 運算符來串連字串。 如果作數都是字串,Visual Basic 會串連它們。 串連結果代表單一字串,其中包含兩個作數的內容一個接一個。
如果作數是混合類型,結果取決於 Option Strict語句的設定。 下列範例說明 當 為 On時Option Strict的結果。
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.
下列範例說明 當 為 Off時Option Strict的結果。
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.
若要消除模棱兩可,您應該使用 & 運算符來取代 + 串連。