定数とリテラルのデータ型 (Visual Basic)
リテラルとは、数字の 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
であり、 Boolean
定数は True
と False
の各キーワードで指定します。
リテラルと強制型変換
Decimal
型変数に非常に大きな整数型リテラルの値を割り当てる場合など、リテラルの特定のデータ型への強制変換が必要になることがあります。 次の例ではエラーが発生します。
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
このエラーの原因は、リテラルの表現にあります。 Decimal
データ型はこの大きさの値を保持できますが、リテラルは暗黙的に Long
として表現されるので、値を保持できません。
リテラルは、2 つの方法で特定のデータ型に強制的に変換できます。1 つは型文字をリテラルに追加することであり、もう 1 つは囲み文字内にリテラルを配置することです。 型文字と囲み文字は、リテラルの直前または直後に、スペースや文字を挟まずに配置する必要があります。
前述の例を機能させるには、リテラルに 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