赋值语句
更新:2007 年 11 月
赋值语句执行赋值操作,而赋值操作包括获取赋值运算符 (=) 右侧的值,并将该值存储到赋值运算符左侧的元素中,如下面的示例所示。
v = 42
在前面的示例中,赋值语句将文本值 42 存储到变量 v 中。
合格的编程元素
赋值运算符左侧的编程元素必须能够接受和存储值。这意味着编程元素必须是一个不为 ReadOnly (Visual Basic) 的变量或属性,或者必须是一个数组元素。在赋值语句的上下文中,此类元素有时称为 lvalue,即“left value”(左侧的值)。
赋值运算符右侧的值由表达式生成,而表达式则由文本、常数、变量、属性、数组元素、其他表达式或函数调用的任意组合所构成。下面的示例阐释这一点。
x = y + z + findResult(3)
前面的示例将变量 y 中存储的值与变量 z 中存储的值相加,然后与调用函数 findResult 返回的值相加。然后,此表达式的总值将存储到变量 x 中。
赋值语句中的数据类型
除数值外,赋值运算符还可以分配 String 值,如下面的示例所阐释。
Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.
您也可以使用 Boolean 文本或 Boolean 表达式分配 Boolean 值,如下面的示例所阐释。
Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.
同样,您可以将适当的值分配给 Char、Date 或 Object 数据类型的编程元素。您也可以将对象实例分配给声明作为创建该实例的类的元素。
复合赋值语句
复合赋值语句先对表达式执行运算,然后才将表达式赋给编程元素。下面的示例阐释这些运算符中的 +=,该运算符使用右侧表达式的值递增运算符左侧变量的值。
n += 1
前面的示例将 1 与 n 的值相加,然后将新值存储在 n 中。它是下列语句的一种简写等效语句:
n = n + 1
可以使用此类型的运算符执行各种复合赋值运算。有关这些运算符的列表及其更多信息,请参见赋值运算符。
当向已经存在的字符串的末尾添加字符串时,串联赋值运算符 (&=) 很有用,如下面的示例所阐释。
Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".
赋值语句中的类型转换
分配给变量、属性或数组元素的值必须是适合于该目标元素的数据类型。通常,应当尝试生成与目标元素的数据类型相同的值。但是,在赋值过程中,一些类型可以转换为其他类型。
有关在数据类型之间转换的信息,请参见 Visual Basic 中的类型转换。简言之,Visual Basic 自动将给定类型的值转换成其扩展的任何其他类型。“扩大转换”是在运行时始终成功的转换方式,而且不会丢失任何数据。例如,Visual Basic 在适当的时候将 Integer 值转换为 Double 值,因为 Integer 可扩展为 Double。有关更多信息,请参见扩大转换和收缩转换。
“收缩转换”(那些没有扩展的转换)具有在运行时失败或丢失数据的风险。您可以通过使用类型转换函数显式执行收缩转换,也可以通过设置 Option Strict Off 指示编译器隐式执行所有的转换。有关更多信息,请参见隐式转换和显式转换。