是否可以在VB .NET中声明动态常量?

时间:2010-01-27 21:52:02

标签: vb.net dynamic constants

我正在尝试在程序执行开始时将时间戳保存为常量,以便在整个程序中使用。例如:

Const TIME_STAMP = Format(Now(), "hhmm")

但是,此代码会生成编译器错误 - “需要常量表达式”。这是否意味着VB .NET中的所有常量必须包含平坦,静态,硬编码的数据?我知道可以在其他语言(例如Java)中使用动态值初始化常量 - 使其成为常量的是在初始赋值之后您无法再更改它。 VB .NET中是否存在等价物?

3 个答案:

答案 0 :(得分:7)

您需要将其设为Shared Readonly而不是Const - 后者仅适用于编译时常量。 Shared Readonly仍会阻止任何人更改价值。

Java实际上没有Const这样的概念 - 它只是在static final值实际上是编译时常量时发现的。

答案 1 :(得分:6)

您正在寻找的是readonly关键字。 时间戳必须在运行时计算,不能保持不变。

ReadOnly TIME_STAMP As String = Format(Now(), "hhmm")

答案 2 :(得分:1)

根据定义,常量不是动态的。如果您想要将变量设置一次,而不是再次修改,我相信您正在寻找ReadOnly关键字......

Public Shared ReadOnly TIME_STAMP = Format(Now(), "hhmm")

请注意,“共享”是可选的。