数値および文字列のリテラルにサフィックスを付けることで、リテラルの型を明示的に指定することができます。 また、VBではサフィックスの他にも型文字と呼ばれる記号を付けることでも型を指定することができます。 なお、以下の表中では明記していませんが、VBでもサフィックスを小文字で指定できます。

特にリテラルを指定しない場合、数値型では(基本的には)int/Integer、実数型ではdouble/Doubleとして扱われ、代入に際しては代入先の型に変換されます。

サフィックスとリテラルの例
.NET C# VB
サフィックス リテラルの例 サフィックス 型文字 リテラルの例
整数型 System.SByte sbyte - - SByte - - -
System.Int16 short - - Short S - 1024S
System.Int32 int - 100000 Integer I % 100000
100000I
100000%
System.Int64 long L/l
(数字1(one)を混同する可能性があるため、l(small L)を使用するとコンパイル時に警告となる)
200L
3000000000l
Long L & 00L
3000000000&
System.Byte byte - - Byte - - -
System.UInt16 ushort - - UShort US - 2048US
System.UInt32 uint u/U 12u
12U
UInteger UI - 12UI
System.UInt64 ulong ul/LUなど
(大文字小文字・ULの順序は自由)
200ul
3000000000Lu
ULong UL - 3000000000UL
実数型 System.Single float f/F 1.0f
1.0F
Single F ! 1.0F
1.0!
System.Double double d/D 3.14
3.14d
3.14D
Double R # 3.14
3.14R
3.14#
System.Decimal decimal m/M 0.66666666m
0.66666666M
Decimal D @ 0.66666666D
0.66666666@
文字・文字列型 System.Char char - 'A' Char C - "A"C
System.String string - "ABC" String - - "ABC"
サフィックス リテラルの例 サフィックス 型文字 リテラルの例
.NET C# VB

数値リテラルでは、数字とサフィックスの間に桁区切り文字を入れることはできません。

16進数表記8進数表記などのプレフィックス付きの整数リテラルを記述する場合でも、サフィックスを付けることで型を指定することができます。

サフィックスを使ってプレフィックス付き整数リテラルの型を指定する
Imports System

Class Sample
  Shared Sub Main()
    ' 10進数リテラルとサフィックス
    Console.WriteLine("{0} {1}", 100,   (100).GetType())
    Console.WriteLine("{0} {1}", 100UI, (100UI).GetType())
    Console.WriteLine("{0} {1}", 100L,  (100L).GetType())
    Console.WriteLine()

    ' 16進数リテラルとサフィックス
    Console.WriteLine("{0} {1}", &H100,   (&H100).GetType())
    Console.WriteLine("{0} {1}", &H100UI, (&H100UI).GetType())
    Console.WriteLine("{0} {1}", &H100L,  (&H100L).GetType())
    Console.WriteLine()

    ' 2進数リテラルとサフィックス
    Console.WriteLine("{0} {1}", &B100,   (&B100).GetType())
    Console.WriteLine("{0} {1}", &B100UI, (&B100UI).GetType())
    Console.WriteLine("{0} {1}", &B100L,  (&B100L).GetType())
    Console.WriteLine()
  End Sub
End Class
実行結果
100 System.Int32
100 System.UInt32
100 System.Int64

256 System.Int32
256 System.UInt32
256 System.Int64

4 System.Int32
4 System.UInt32
4 System.Int64

MENTAにてテキストチャットによるサポートを行っています。 問題の解決法をお探しの方や.NET/C#を学習中の方はどうぞご利用ください。