2010-01-27 62 views
5

我试图在程序执行开始时将时间戳保存到常量中,以便在整个程序中使用。例如:是否有可能在VB .NET中声明一个动态常量?

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

但是,此代码会生成一个编译器错误 - “需要常量表达式”。这是否意味着VB .NET中的所有常量都必须包含平坦,静态,硬编码的数据?我知道可以使用其他语言(如Java)中的动态值初始化一个常量 - 使其成为常量的原因是在初始分配之后,不能再对其进行更改。在VB.NET中是否有相同的内容?

回答

6

你在找什么是readonly关键字。 时间戳必须在运行时计算,并且不能保持不变。

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

你需要做的是Shared Readonly代替Const - 后者仅适用于编译时常数。 Shared Readonly仍然会阻止任何人改变价值。

的Java实际上并不一个概念像Const - 它只是斑点时static final值实际上编译时间常数。

1

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

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

需要注意的是“共享”是可选的。

+0

为什么'Shared'之​​间有护腕? – Pacerier 2011-09-12 16:09:48

+0

因为它是(可选的),这取决于库的设计方式。 – 2011-09-12 22:09:08

+0

虽然 – Pacerier 2011-09-13 09:52:28

相关问题