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