共用方式為


常數和常值資料類型 (Visual Basic)

常值是以本身表示的值,而不是變數的值或運算式的結果,例如數字 3 或字串 "Hello"。 常數是有意義的名稱,會取代常值,並在整個程式中保留此相同的值,而不是值可能會變更的變數。

Option InferOffOption StrictOn 時,您必須使用資料類型明確地宣告所有常數。 在下列範例中,MyByte 的資料類型會明確地宣告為資料類型 Byte

Option Strict On

Public Class Sample
  Public Const MyByte As Byte = 2
End Class

Option InferOnOption StrictOff 時,您可以宣告常數,而不需使用 As 子句來指定資料類型。 編譯器會從運算式的類型來判斷常數的類型。 根據預設,數值整數常值會轉換成 Integer 資料類型。 浮點數的預設資料類型為 Double,而關鍵字 TrueFalse 會指定 Boolean 常數。

常值與類型強制型轉

在某些情況下,建議您強制將常值轉換成特定資料類型;例如,將特別大型的整數常值指派給類型 Decimal 的變數時。 下例範例會產生錯誤:

Dim myDecimal as Decimal  
myDecimal = 100000000000000000000   ' This causes a compiler error.  

錯誤會由常值表示所產生。 Decimal 資料類型可以保存如此大型的值,但隱含表示為 Long 的常值就做不到。

您可以透過兩種方式,將常值強制轉型成特定資料類型:將類型字元附加至特定資料類型,或將其放在封入字元中。 類型字元或封入字元必須緊接在常值前面和 (或) 緊接在常值後面,且中間沒有任何空格或任何種類的字元。

若要讓上述範例正常運作,您可以將 D 類型字元附加至常值,這會導致其表示為 Decimal

Dim MyDecimal As Decimal = 100000000000000000000D

下列範例示範正確使用類型字元與封入字元:

' Default to Integer.
Public Const DefaultInteger As Integer = 100

' Default to Double.
Public Const DefaultDouble As Double = 54.3345612

' Force constant to be type Char.
Public Const MyCharacter As Char = "a"c

' DateTime constants.
Public Const MyDate As DateTime = #1/15/2001#
Public Const MyTime As DateTime = #1:15:59 AM#

' Force data type to be Long.
Public Const MyLong As Long = 45L

' Force data type to be Single.
Public Const MySingle As Single = 45.55!

下列資料表顯示 Visual Basic 中可用的封入字元與類型字元。

資料類型 封入字元 附加的類型字元
Boolean (無) (無)
Byte (無) (無)
Char " C
Date # (無)
Decimal (無) D 或 @
Double (無) R 或 #
Integer (無) I 或 %
Long (無) L 或 &
Short (無) S
Single (無) F 或 !
String " (無)

另請參閱