宣言ステートメントでデータ型を指定するだけでなく、一部のプログラミング要素のデータ型を 強制的に型文字で指定することもできます。 型文字は、要素のすぐ後に続く必要があります。どの種類の文字も介在しません。
型文字は要素の名前の一部ではありません。 型文字で定義された要素は、型文字なしで参照できます。
識別子の型文字
Visual Basic には、変数または定数のデータ型を指定するために宣言で使用できる 識別子型文字 のセットが用意されています。 次の表に、使用できる識別子の種類の文字と使用例を示します。
識別子の型文字 | データの種類 | 例 |
---|---|---|
% |
Integer |
Dim L% |
& |
Long |
Dim M& |
@ |
Decimal |
Const W@ = 37.5 |
! |
Single |
Dim Q! |
# |
Double |
Dim X# |
$ |
String |
Dim V$ = "Secret" |
Boolean
、Byte
、Char
、Date
、Object
、SByte
、Short
、UInteger
、ULong
、またはUShort
データ型、配列や構造体などの複合データ型には、識別子の型文字は存在しません。
場合によっては、$
文字を Visual Basic 関数に追加して (たとえば、Left
ではなくLeft$
)、String
型の戻り値を取得できます。
いずれの場合も、識別子の種類の文字は識別子名の直後に続く必要があります。
リテラル型の文字
リテラルは、データ型の特定の値のテキスト表現です。
既定のリテラル型
通常、コードに表示されるリテラルの形式によって、そのデータ型が決定されます。 次の表に、これらの既定の型を示します。
リテラルのテキスト形式 | 既定のデータ型 | 例 |
---|---|---|
数値、小数部なし | Integer |
2147483647 |
数値、小数部なし、大きすぎる Integer |
Long |
2147483648 |
数値、小数部 | Double |
1.2 |
二重引用符で囲む | String |
"A" |
番号記号で囲む | Date |
#5/17/1993 9:32 AM# |
強制リテラル型
Visual Basic には、 リテラル型文字のセットが用意されています。これを使用すると、その形式が示すデータ型以外のデータ型をリテラルで強制的に想定できます。 これを行うには、リテラルの末尾に文字を追加します。 次の表に、使用できるリテラル型の文字と使用例を示します。
リテラル型の文字 | データの種類 | 例 |
---|---|---|
S |
Short |
I = 347S |
I |
Integer |
J = 347I |
L |
Long |
K = 347L |
D |
Decimal |
X = 347D |
F |
Single |
Y = 347F |
R |
Double |
Z = 347R |
US |
UShort |
L = 347US |
UI |
UInteger |
M = 347UI |
UL |
ULong |
N = 347UL |
C |
Char |
Q = "."C |
Boolean
、Byte
、Date
、Object
、SByte
、またはString
のデータ型、または配列や構造体などの複合データ型には、リテラル型の文字は存在しません。
リテラルでは、変数、定数、および式と同様に、識別子の型文字 (%
、 &
、 @
、 !
、 #
、 $
) を使用することもできます。 ただし、リテラル型の文字 (S
、 I
、 L
、 D
、 F
、 R
、 C
) はリテラルでのみ使用できます。
いずれの場合も、リテラル型文字はリテラル値の直後に続く必要があります。
16 進数、バイナリ、および 8 進数のリテラル
コンパイラは通常、整数リテラルを 10 進数 (底 10) の数値システムに含めるのを解釈します。 整数リテラルは、 &H
プレフィックスを持つ 16 進数 (底 16) 番号、 &B
プレフィックスを持つ 2 進 (底 2) 番号、および &O
プレフィックスを持つ 8 進数 (底 8) として定義することもできます。 プレフィックスの後の数字は、番号システムに適している必要があります。 次の表に、これを示します。
数値ベース | 接頭辞 | 有効な数字の値 | 例 |
---|---|---|---|
16 進数 (16 進数) | &H |
0 から 9 および A から F | &HFFFF |
バイナリ (ベース 2) | &B |
0-1 | &B01111100 |
8 進数 (ベース 8) | &O |
0-7 | &O77 |
Visual Basic 2017 以降では、グループ区切り記号としてアンダースコア文字 (_
) を使用して、整数リテラルの読みやすさを高めることができます。 次の例では、 _
文字を使用してバイナリ リテラルを 8 ビット グループにグループ化します。
Dim number As Integer = &B00100010_11000101_11001111_11001101
プレフィックス付きリテラルの後にリテラル型の文字を付けることができます。 次の例は、これを示しています。
Dim counter As Short = &H8000S
Dim flags As UShort = &H8000US
前の例では、 counter
の 10 進値は -32768 で、 flags
の 10 進値は +32768 です。
Visual Basic 15.5 以降では、プレフィックスと 16 進数、2 進数、または 8 進数の間の先頭の区切り記号としてアンダースコア文字 (_
) を使用することもできます。 例えば次が挙げられます。
Dim number As Integer = &H_C305_F860
先頭の区切り記号としてアンダースコア文字を使用するには、Visual Basic プロジェクト (*.vbproj) ファイルに次の要素を追加する必要があります。
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
詳細については、「 Visual Basic 言語バージョンの選択」を参照してください。
こちらも参照ください
.NET