共用方式為


常數和常值資料型別

更新:2007 年 11 月

常值 (Literal) 會表示本身的值,而非變數值或運算式的結果,例如號碼 3 或字串 "Hello"。常數為有意義的名稱,可取代常值並在整個程式中維持相同的值,與可能變更值的變數相反。

當 Option Strict 為 On 時,您必須明確宣告所有常數和資料型別。在下列範例中,MyByte 資料型別明確地宣告為 Byte 資料型別:

Option Strict On

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

明確宣告資料型別不會造成模稜兩可,而具型別的程式碼也會較不具型別的程式碼易於閱讀和維護。但是當 Option Strict 為 Off 時,編譯器將使用用來初始化常數的運算式型別。依預設值,數值整數常值會轉換成 Integer 資料型別。浮點數值 (Floating-Point Number) 的預設資料型別為 Double,關鍵字 True 和 False 則指定 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

"

(無)

請參閱

工作

HOW TO:宣告常數

HOW TO:宣告列舉型別

概念

使用者定義常數

常數的概觀

列舉型別的概觀

列舉型別和名稱限定

內建常數和列舉型別

參考

Option Strict 陳述式

Option Explicit 陳述式 (Visual Basic)

資料型別摘要 (Visual Basic)