次の方法で共有


定数とリテラルのデータ型 (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

"

(なし)

参照

処理手順

方法: 定数を宣言する (Visual Basic)

方法: 列挙型を宣言する (Visual Basic)

関連項目

Option Strict ステートメント

Option Explicit ステートメント (Visual Basic)

データ型の概要 (Visual Basic)

概念

ユーザー定義定数 (Visual Basic)

定数の概要 (Visual Basic)

列挙型の概要 (Visual Basic)

列挙型と名前修飾 (Visual Basic)

定数と列挙型 (Visual Basic)