代码中的特殊字符 (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 类型字符。

另请参阅