定数とリテラルのデータ型 (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 であり、キーワード True と False は Boolean 定数を指定します。
リテラルと型の自動変換
大きな整数リテラル値を 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 |
" |
(なし) |
参照
処理手順
関連項目
Option Explicit ステートメント (Visual Basic)