リテラルは、変数の値または式の結果 (数値 3 や文字列 "Hello" など) ではなく、それ自体として表される値です。 定数は、リテラルの代わりに使用されるわかりやすい名前であり、値が変更される可能性がある変数とは対照的に、プログラム全体で同じ値を保持します。
Option Infer がOff
で Option Strict がOn
されている場合は、すべての定数をデータ型で明示的に宣言する必要があります。 次の例では、 MyByte
のデータ型がデータ型 Byte
として明示的に宣言されています。
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
Option Infer
がOn
またはOption Strict
がOff
場合は、As
句でデータ型を指定せずに定数を宣言できます。 コンパイラは、式の型から定数の型を決定します。 数値整数リテラルは、既定で Integer
データ型にキャストされます。 浮動小数点数の既定のデータ型はDouble
され、キーワードはTrue
され、Boolean
定数を指定False
。
リテラルと型強制型
場合によっては、リテラルを特定のデータ型に強制することができます。たとえば、特に大きな整数リテラル値を Decimal
型の変数に割り当てる場合です。 次の例では、エラーが発生します。
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
エラーは、リテラルの表現によって発生します。
Decimal
データ型は、この大きな値を保持できますが、リテラルは暗黙的にLong
として表されます。これはできません。
リテラルを特定のデータ型に強制するには、型文字を追加するか、外側の文字内に配置する方法の 2 つの方法があります。 型文字または外側の文字は、リテラルの直前または後に置く必要があり、スペースや文字は一切含めてはなりません。
前の例を機能させるには、リテラルに 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 |
「」 | (なし) |
こちらも参照ください
.NET