除了在声明语句中指定数据类型外,还可以强制某些编程元素具有 类型字符的数据类型。 类型字符必须紧跟在元素之后,且中间不得有任何字符。
类型字符不是元素名称的一部分。 在没有类型字符的情况下,可以引用使用类型字符定义的元素。
标识符类型字符串
Visual Basic 提供了一组 标识符类型字符 ,可用于在声明中指定变量或常量的数据类型。 下表显示了具有用法示例的可用标识符类型字符。
| 标识符类型字符 | 数据类型 | 示例: |
|---|---|---|
% |
Integer |
Dim L% |
& |
Long |
Dim M& |
@ |
Decimal |
Const W@ = 37.5 |
! |
Single |
Dim Q! |
# |
Double |
Dim X# |
$ |
String |
Dim V$ = "Secret" |
不存在用于Boolean、Byte、Char、Date、Object、SByte、Short、UInteger、ULong或UShort数据类型的标识符类型字符,也不存在用于任何复合数据类型(如数组或结构)的标识符类型字符。
在某些情况下,可以将 $ 字符附加到 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 |
不存在适用于Boolean、Byte、Date、Object、SByte或String数据类型的文本类型字符,也不存在适用于任何复合数据类型(如数组或结构)的文本类型字符。
与变量、常量和表达式一样,文本也可以使用标识符类型字符(%、&、@、!、#、$)。 但是,文本类型字符(S、、IL、D、、F、R)C只能与文本一起使用。
在所有情况下,文本类型字符必须紧接在文本值之后。
十六进制、二进制和八进制字面值
编译器通常将整数文本解释为采用十进制(以 10 为基数)数系。 还可以将整数文本定义为具有 &H 前缀的十六进制(base 16)数字、带 &B 前缀的二进制(base 2)数字,以及带有前缀的 &O 八进制数(base 8) 数字。 前缀后面的数字必须适用于数字系统。 下表说明了这一点。
| 数基 | 前缀 | 有效数字值 | 示例: |
|---|---|---|---|
| 十六进制 (base 16) | &H |
0-9 和 A-F | &HFFFF |
| 二进制 (base 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 语言版本”。