代码中的特殊字符

更新:2007 年 11 月

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

括号

在定义过程(如 Sub 或 Function)时使用括号。必须将所有过程参数列表放入括号内。括号还可用来为变量或参数进行逻辑分组,特别是用来重写复杂表示式中运算符的默认优先顺序。下面的示例阐释这一点。

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 类型的字符。

请参见

概念

类型字符

其他资源

程序结构和代码约定