我正在尝试在程序执行开始时将时间戳保存为常量,以便在整个程序中使用。例如:
Const TIME_STAMP = Format(Now(), "hhmm")
但是,此代码会生成编译器错误 - “需要常量表达式”。这是否意味着VB .NET中的所有常量必须包含平坦,静态,硬编码的数据?我知道可以在其他语言(例如Java)中使用动态值初始化常量 - 使其成为常量的是在初始赋值之后您无法再更改它。 VB .NET中是否存在等价物?
答案 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")
请注意,“共享”是可选的。