2010-01-27 27 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

相關問題