类型字符 (Visual Basic)

除了在声明语句中指定数据类型外,还可以使用类型字符来强制对某些编程元素使用数据类型。 类型字符必须紧接在元素之后,中间没有任何种类的字符。

类型字符不是元素名称的一部分。 在没有类型字符的情况下可以引用使用类型字符定义的元素。

标识符类型字符串

Visual Basic 提供一组标识符类型字符,可以在声明中使用这些字符来指定变量或常量的数据类型。 下表显示了可用的标识符类型字符及其用法示例。

标识符类型字符 数据类型 示例
% Integer Dim L%
& Long Dim M&
@ Decimal Const W@ = 37.5
! Single Dim Q!
# Double Dim X#
$ String Dim V$ = "Secret"

BooleanByteCharDateObjectSByteShortUIntegerULongUShort 数据类型或者任何复合数据类型(例如数组或结构)不存在标识符类型字符。

在某些情况下,可将 $ 字符追加到 Visual Basic 函数(例如指定 Left$ 而不是 Left)以获取类型为 String 的返回值。

在所有情况下,标识符类型字符必须紧接在标识符名称之后。

文本类型字符

文本是数据类型的特定值的文本表示形式。

默认文本类型

文本在代码中的显示格式通常决定了它的数据类型。 下表显示了这些默认类型。

文本的文本格式 默认数据类型 示例
数字,无小数部分 Integer 2147483647
数字,无小数部分,对于 Integer 太大 Long 2147483648
数字,带小数部分 Double 1.2
包含在双引号内 String "A"
括在一对 # 符号内 Date #5/17/1993 9:32 AM#

强制文本类型

Visual Basic 提供一组文本类型字符,可以使用这些字符来强制文本采用与其格式所指示的类型不同的数据类型。 为此,可将字符追加到文本的末尾。 下表显示了可用的文本类型字符及其用法示例。

文本类型字符 数据类型 示例
S Short I = 347S
I Integer J = 347I
L Long K = 347L
D Decimal X = 347D
F Single Y = 347F
R Double Z = 347R
US UShort L = 347US
UI UInteger M = 347UI
UL ULong N = 347UL
C Char Q = "."C

BooleanByteDateObjectSByteString 数据类型或者任何复合数据类型(例如数组或结构)不存在文本类型字符。

与变量、常量和表达式一样,文本也可以使用标识符类型字符(%&@!#$)。 但是,文本类型字符(SILDFRC)只可用于文本。

在所有情况下,文本类型字符必须紧接在文本值之后。

十六进制、二进制和八进制文本

编译器通常将整数文本解释为采用十进制(以 10 为基数)数系。 你也可以将整数文本定义为带 &H 前缀的十六进制(以 16 为基数)数、带 &B 前缀的二进制(以 2 为基数)数和带 &O 前缀的八进制(以 8 为基数)数。 前缀后面的数字必须与数系相适应。 下表演示了这一点。

数基 前缀 有效数字值 示例
十六进制(以 16 为基数) &H 0-9 和 A-f &HFFFF
二进制(以 2 为基数) &B 0-1 &B01111100
八进制(以 8 为基数) &O 0-7 &O77

从 Visual Basic 2017 开始,可以使用下划线字符 (_) 作为组分隔符来增强整数文本的可读性。 以下示例使用 _ 字符将二进制文本分组为 8 位组:

Dim number As Integer = &B00100010_11000101_11001111_11001101

可以在带前缀的文本后面追加文本类型字符。 下面的示例显示了这种情况。

Dim counter As Short = &H8000S
Dim flags As UShort = &H8000US

在以上示例中,counter 的十进制值为 -32768,flags 的十进制值为 +32768。

从 Visual Basic 15.5 开始,还可以使用下划线字符 (_) 作为前缀与十六进制、二进制或八进制数字之间的前导分隔符。 例如:

Dim number As Integer = &H_C305_F860

若要使用下划线字符作为前导分隔符,必须将以下元素添加到 Visual Basic 项目 (*.vbproj) 文件中:

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

有关详细信息,请参阅选择 Visual Basic 语言版本

另请参阅