【VB.NET】数字をリテラルで指定する

VB.NET
この記事は約3分で読めます。

概要

変数に数字を割当てたい場合の説明です。

例えば、とある数字型 の変数に 100 が入っているか確認するのに

If num = 100 Then
    '処理
End If

とコーディングしますが、ちょっと待ってその 100 って型はなんですか?っていうお話

内容

VB.NET では、リテラルの数字 100 は Integerとして扱われます。

Dim num = 100

とコーディングして、100 にマウスを当てて欲しいのですが、こんな感じに表示されます。

※System.Int32 は Integer の .NET Framework としての名前です。

単純に 100 とした場合、Integer 型です。

同じ要領で

Dim num = 100S
Dim num = 100L

とコーディングして、マウスを当ててみてください。型が変わります。

後ろについている S とか L をサフィックスと言います。サフィックスが付くと型が変わります。

サフィックス
整数 Short S 100S
Integer I 100I
Long L 100L
UInteger UI 100UI
ULong UL 100UL
実数 Single F 100F
Double R 100R
Decimal D 100D
UIntegerとULong型は負の整数が扱えない代わりに正の整数が通常の倍まで扱えます。

じゃあ、100S と 100Lで何か違うかと言われれば、困ることはほとんどないです。ただ、金額を扱う事が多いDecimal型には明示的 D を付けておいた方が良いことが多いです。

詳しくはこの辺を読んでみてください

https://it.yawapro.com/archives/1597

サンプルコード

Module Module1
    Sub Main()

        Dim obj = New Object() {100S,
                                100I,
                                100L,
                                100UI,
                                100UL,
                                100.0F,
                                100.0R,
                                100D}

        For Each ob In obj
            Console.WriteLine(ob.ToString & "," & ob.GetType.ToString)
        Next

    End Sub
End Module
100,System.Int16
100,System.Int32
100,System.Int64
100,System.UInt32
100,System.UInt64
100,System.Single
100,System.Double
100,System.Decimal
続行するには何かキーを押してください . . .

みためはどれも100ですが、型が違いますね。

 

コメント

タイトルとURLをコピーしました