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

fro*_*die 5 vb.net constants dynamic

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

Const TIME_STAMP = Format(Now(), "hhmm")
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 7

您需要创建它Shared Readonly而不是Const- 后者仅适用于编译时常量.Shared Readonly仍然会阻止任何人改变价值.

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


Cha*_*ion 6

您正在寻找的是readonly关键字.时间戳必须在运行时计算,并且不能是常量.

ReadOnly TIME_STAMP As String = Format(Now(), "hhmm")
Run Code Online (Sandbox Code Playgroud)