代码中的特殊字符 (Visual Basic)

有时需要在代码中使用特殊字符,即不是字母或数字的字符。 Visual Basic 字符集中的标点和特殊字符各有其用途,从组织程序文本到定义编译器或已编译程序所执行的任务。 它们不指定要执行的操作。

括号

定义过程(例如 SubFunction)时使用括号。 必须用括号将所有过程参数列表括起来。 还可用括号将变量或参数放入逻辑组,尤其是在一个复杂的表达式中要替代运算符优先级的默认顺序时。 下面的示例对此进行了演示。

Dim a, b, c, d, e As Double
a = 3.2
b = 7.6
c = 2
d = b + c / a
e = (b + c) / a

执行上述代码后,d 的值为 8.225,e 的值为 3。 计算 d 时,采用的默认优先级是 / 高于 +,与 d = b + (c / a) 相等。 计算 e 时,当中的括号会替代默认优先级。

分隔器

分隔符的作用顾名思义:分隔代码部分。 在 Visual Basic 中,分隔符是冒号 (:)。 若要在一行而不是单独的行中包含多个语句,请使用分隔符。 这可节省空间并提高代码的可读性。 下面的示例演示用冒号分隔的三个语句。

a = 3.2 : b = 7.6 : c = 2

有关详细信息,请参阅如何:在代码中拆分和合并语句

冒号 (:) 字符也用于标识语句标签。 有关详细信息,请参阅如何:为语句添加标签

串联

使用 & 运算符进行串联,或将字符串链接在一起。 不要将它与 + 运算符混淆,后者用于将数值相加。 如果运算数值时使用 + 运算符进行连接,可能会得到错误的结果。 下面的示例演示这一操作。

var1 = "10.01"
var2 = 11
resultA = var1 + var2
resultB = var1 & var2

执行上述代码后,resultA 的值为 21.01,resultB 的值为 10.0111。

成员访问运算符

若要访问某个类型的成员,请在类型名称和成员名称之间使用点 (.) 或感叹号 (!) 运算符。

点运算符 (.)

对类、结构、接口或枚举使用 . 运算符,用作成员访问运算符。 成员可以是字段、属性、事件或方法。 下面的示例对此进行了演示。

Dim nextForm As New System.Windows.Forms.Form
' Access Text member (property) of Form class (on nextForm object).
nextForm.Text = "This is the next form"
' Access Close member (method) on nextForm.
nextForm.Close()

感叹号 (!) 运算符

仅对类或接口使用 ! 运算符,用作字典访问运算符。 类或接口必须具有可接受单个 String 参数的默认属性。 紧跟在 ! 运算符后面的标识符成为以字符串形式传递给默认属性的参数值。 下面的示例演示这一操作。

Public Class hasDefault
  Default Public ReadOnly Property index(ByVal s As String) As Integer
    Get
      Return 32768 + AscW(s)
    End Get
  End Property
End Class
Public Class testHasDefault
  Public Sub compareAccess()
    Dim hD As hasDefault = New hasDefault()
    MsgBox("Traditional access returns " & hD.index("X") & vbCrLf & 
      "Default property access returns " & hD("X") & vbCrLf & 
      "Dictionary access returns " & hD!X)
  End Sub
End Class

MsgBox 的三个输出行都显示值 32856。 第一行对属性 index 进行传统访问,第二行利用 index 是类 hasDefault 的默认属性这一事实,第三行对类进行字典访问。

请注意,! 运算符的第二个操作数必须是没用双引号 (" ") 括起来的有效 Visual Basic 标识符。 换句话说,不能使用字符串字面量或字符串变量。 对 MsgBox 调用的最后一行进行以下更改会生成错误,因为 "X" 是被括起来的字符串字面量。

"Dictionary access returns " & hD!"X")

备注

对默认集合的引用必须是显式的。 特别是,不能对后期绑定变量使用 ! 运算符。

! 字符还用作 Single 类型字符。

另请参阅