常量和 Literal 数据类型 (Visual Basic)
文本是表示为自身的值,而不是表示为变量的值或表达式的结果,如数字 3 或字符串“Hello”。 常数是一个替代文本并在整个程序中保持此相同值的有意义名称,它与变量相对,变量的值可能会更改。
当 Option Infer 是 Off 并且 Option Strict 是 On 时,必须为所有变量显式声明数据类型。 在下面的示例中,MyByte 的数据类型显式声明为数据类型 Byte:
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
当 Option Infer 是 On 或 Option Strict 是 Off 时,可以在不使用 As 子句指定数据类型的情况下声明常量。 编译器通过表达式的类型确定常量的类型。 默认情况下,数值整数文本转换为 Integer 数据类型。 浮点数的默认数据类型是 Double,关键字 True 和 False 指定 Boolean 常数。
文本和类型强制
某些情况下,您可能希望将文本强制为某种特定数据类型;例如,当将一个特别大的整数文本值赋予一个类型为 Decimal 的变量时。 下面的示例会产生错误:
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
错误来源于文本的表示。 Decimal 数据类型可以具有这么大的值,但是文本被隐式地表示为 Long 类型,而该类型不能具有这么大的值。
可以用两种方式将文本强制为特定数据类型:给文本追加类型字符,或将它置于封闭字符内。 类型字符或封闭字符必须紧邻文本之前和/或之后,中间不能有任何空格或字符。
若要使上例正确运行,可以在文本后追加类型字符 D,它使文本表示为 Decimal:
Dim MyDecimal As Decimal = 100000000000000000000D
下面的示例说明类型字符和封闭字符的正确用法:
' Default to Integer.
Public Const DefaultInteger As Integer = 100
' Default to Double.
Public Const DefaultDouble As Double = 54.3345612
' Force constant to be type Char.
Public Const MyCharacter As Char = "a"c
' DateTime constants.
Public Const MyDate As DateTime = #1/15/2001#
Public Const MyTime As DateTime = #1:15:59 AM#
' Force data type to be Long.
Public Const MyLong As Long = 45L
' Force data type to be Single.
Public Const MySingle As Single = 45.55!
下表显示 Visual Basic 中可用的封闭字符和类型字符。
数据类型 |
封闭字符 |
追加的类型字符 |
Boolean |
(无) |
(无) |
Byte |
(无) |
(无) |
Char |
" |
C |
Date |
# |
(无) |
Decimal |
(无) |
D 或 @ |
Double |
(无) |
R 或 # |
Integer |
(无) |
I 或 % |
Long |
(无) |
L 或 & |
Short |
(无) |
S |
Single |
(无) |
F 或 ! |
String |
" |
(无) |
请参见
任务
参考
Option Explicit 语句 (Visual Basic)