添加两个数字或返回数值表达式的正值。 还可用于连接两个字符串表达式。
语法
expression1 + expression2
或
+expression1
部件
术语 | 定义 |
---|---|
expression1 |
必填。 任何数值或字符串表达式。 |
expression2 |
除非运算符正在计算负值,否则 + 是必需的。 任何数值或字符串表达式。 |
结果
expression2
如果expression1
两者均为数值,则结果是其算术总和。
如果 expression2
不存在,则 +
运算符是表达式未更改值的 一元 标识运算符。 从这个意义上说,该作由保留符号 expression1
组成,因此如果为负数,则结果是负 expression1
数。
expression2
如果expression1
同时是两个字符串,则结果是其值的串联。
如果 expression1
且 expression2
属于混合类型,则采取的作取决于其类型、其内容以及 Option Strict 语句的设置。 有关详细信息,请参阅“备注”中的表。
支持的类型
所有数值类型,包括无符号和浮点类型,以及Decimal
String
。
注解
通常, +
尽可能执行算术加法,并且仅在两个表达式都是字符串时连接。
如果两个表达式都不是, Object
Visual Basic 将执行以下作。
表达式的数据类型 | 按编译器执行的作 |
---|---|
两个表达式都是数值数据类型(SByte 、、Byte 、UShort Short 、Integer UInteger 、、Long 、、ULong 、Decimal 、或Double Single ) |
添加。 结果数据类型是适合数据类型和expression2 数据类型expression1 的数值类型。 请参阅 运算符结果数据类型中的“整数算术”表。 |
这两个表达式的类型都是 String |
连接。 |
一个表达式是数值数据类型,另一个表达式是字符串 |
On 如果是Option Strict ,则生成编译器错误。Off 如果是Option Strict ,则隐式转换为String Double 并添加。如果无法转换为 Double 该String 对象,则引发异常InvalidCastException。 |
一个表达式是数值数据类型,另一个表达式为 Nothing | 添加值 Nothing 为零。 |
一个表达式是一个字符串,另一个表达式是 Nothing |
连接,值 Nothing 为“”。 |
如果一个 Object
表达式是表达式,Visual Basic 将执行以下作。
表达式的数据类型 | 按编译器执行的作 |
---|---|
Object 表达式保存数值,另一个是数值数据类型 |
On 如果是Option Strict ,则生成编译器错误。Off 如果是Option Strict ,则添加。 |
Object 表达式保存数值,另一个为类型 String |
On 如果是Option Strict ,则生成编译器错误。Off 如果是Option Strict ,则隐式转换为String Double 并添加。如果无法转换为 Double 该String 对象,则引发异常InvalidCastException。 |
Object 表达式保存字符串,另一个是数值数据类型 |
On 如果是Option Strict ,则生成编译器错误。Off 如果是Option Strict ,则隐式将字符串Object Double 转换为并添加。如果字符串 Object 无法转换为 Double ,则引发异常 InvalidCastException 。 |
Object 表达式保存字符串,另一个是类型 String |
On 如果是Option Strict ,则生成编译器错误。Off 如果是Option Strict ,则隐式转换为Object String 并连接。 |
如果两个表达式都是 Object
表达式,则 Visual Basic 将执行以下作(Option Strict Off
仅)。
表达式的数据类型 | 按编译器执行的作 |
---|---|
两个 Object 表达式都保存数值 |
添加。 |
这两个 Object 表达式的类型都是 String |
连接。 |
一 Object 个表达式保存数值,另一个表达式保存字符串 |
将字符串Object Double 隐式转换为并添加。如果字符串 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 语句的设置。 下面的示例演示了结果何时 Option Strict
为 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.
下面的示例演示了结果何时 Option Strict
为 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.
若要消除歧义,应使用 &
运算符而不是 +
串联。