更新:2007 年 11 月
固定值变量的概念看起来有点矛盾。但在某些情况下,常数不够灵活,需要使用一个具有固定值的变量。此时,可以使用 ReadOnly (Visual Basic) 关键字来定义一个成员变量。
在以下情况下,不能使用 Const 语句 (Visual Basic) 声明和分配常数值:
- Const 语句不接受要使用的数据类型 
- 在编译时不知道值 
- 不能在编译时计算常数值 
创建固定值变量
- 在模块级别,使用 Dim 语句 (Visual Basic) 声明一个成员变量,并包含 ReadOnly (Visual Basic) 关键字。 - Dim ReadOnly timeStarted- 只能对成员变量指定 ReadOnly。这意味着必须在模块级别、所有过程之外定义该变量。 
- 如果可以在编译时计算单条语句的值,则在 Dim 语句中使用初始化子句。As 子句后接等号 (=),后面为表达式。确保编译器将此表达式计算为一个常数值。 - Dim ReadOnly timeStarted As Date = Now- 只能对 ReadOnly 变量赋一次值。一旦赋值,任何代码都不能更改其值。 - 如果在编译时不知道值或不能在编译时用单条语句计算值,还可以在运行时在构造函数中为它赋值。为此,必须在类或结构级别声明 ReadOnly 变量。在类或结构的构造函数中,计算变量的固定值,并在从构造函数返回之前将它赋给变量。