宣告並定義一或多個常數。
語法
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
組件
attributelist
選擇性。 套用至此語句中宣告之所有常數的屬性清單。 請參閱角括弧中的 屬性清單 (“”< 和 “>)。
accessmodifier
選擇性。 使用此方法來指定哪些程式碼可以存取這些常數。 可以是 Public、 Protected、 Friend、 Protected Friend、 Private 或 Private Protected。
Shadows
選擇性。 使用此方法可重新宣告並隱藏基類中的程式設計專案。 請參閱 陰影。
constantlist
必須的。 在此語句中宣告的常數清單。
constant
[ ,
constant
... ]
每個 constant 都有下列語法和元件:
constantname
[ As
datatype
] =
initializer
| 部分 | 說明 |
|---|---|
constantname |
必須的。 常數的名稱。 請參閱 宣告的項目名稱。 |
datatype |
如果 Option Strict 為 On,則為必要項。 常數的數據類型。 |
initializer |
必須的。 在編譯階段評估並指派給常數的表達式。 |
備註
如果您的值永遠不會在應用程式中變更,您可以定義具名常數,並使用它取代常值。 名稱比值更容易記住。 您可以只定義一次常數,並在程式代碼的許多位置使用它。 如果在較新版本中,您需要重新定義值, Const 語句是唯一需要進行變更的位置。
您只能在模組或程式層級使用 Const 。 這表示變數的 宣告內容 必須是類別、結構、模組、程式或區塊,而且不能是來源檔案、命名空間或介面。 如需詳細資訊,請參閱 宣告內容和預設存取層級。
本機常數 (在程式內) 預設為公用存取,而且您無法在它們上使用任何存取修飾詞。 類別和模組成員常數(在任何程式外)預設為私用存取,而結構成員常數預設為公用存取。 您可以使用存取修飾詞來調整其存取層級。
規則
宣告內容。 在模組層級宣告的常數,在任何程式之外,是 成員常數;它是宣告類別、結構或模組的成員。
在程式層級宣告的常 數是本機常數;它是宣告它的程式或區塊的本機。
屬性。 您只能將屬性套用至成員常數,而不是套用至本機常數。 屬性會提供元件元數據的資訊,這對暫存記憶體而言沒有意義,例如本機常數。
修飾 符。 根據預設,所有常數都是
Shared、Static和ReadOnly。 宣告常數時,您無法使用這些關鍵詞。在程式層級,您無法使用
Shadows或任何存取修飾詞來宣告本機常數。多個常數。 您可以在相同的宣告語句中宣告數個常數,並
constantname指定每個常數的元件。 多個常數會以逗號分隔。
數據類型規則
數據類型。
Const語句可以宣告變數的數據類型。 您可以指定任何資料類型或列舉的名稱。默認類型。 如果您未指定
datatype,常數會採用的initializer資料類型。 如果您同時datatype指定和initializer,則的initializer資料類型必須可轉換成datatype。 如果 和 都不存在datatype,數據類型會預設為Object。initializer不同類型的。 您可以針對您宣告的每個變數使用個別
As子句,為不同的常數指定不同的數據類型。 不過,您無法使用 CommonAs子句,將數個常數宣告為相同類型。初始化。 您必須初始化 中
constantlist每個常數的值。 您可以使用initializer來提供要指派給常數的運算式。 表達式可以是常值的任何組合、已定義的其他常數,以及已經定義的列舉成員。 您可以使用算術和邏輯運算子來結合這類元素。您無法在 中使用
initializer變數或函式。 不過,您可以使用 轉換關鍵字,例如CByte和CShort。 如果您以常數String或Char自變數呼叫它,您也可以使用AscW,因為您可以在編譯時期加以評估。
行為
範圍。 本機常數只能從其程式或區塊記憶體取。 成員常數可從其類別、結構或模組中的任何位置存取。
資格。 類別、結構或模組以外的程式代碼必須以該類別、結構或模組的名稱來限定成員常數的名稱。 程式或區塊以外的程式代碼無法參考該程式或區塊內的任何本機常數。
範例 1
下列範例會 Const 使用 語句來宣告常數,以取代常值。
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
範例 2
如果您使用資料類型來定義常數,則 Visual Basic 編譯程式會提供的 型Objectinitializer別,而不是 Object。 在下列範例中,常數 naturalLogBase 具有執行時間類型 Decimal。
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
這個範例使用 ToStringGetType 運算子所傳回之 物件上的 Type 方法,因為Type無法使用 轉換成 StringCStr。