【VB.NET】Decimal型にNothingを設定する

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

【VB.NET】Decimal型にNothingを設定する

値型(プリミティブ型)のDecimal型に「Nothing」を設定するとどうなるかサンプルコードを書きながら確認します。

 

内容

サンプルコード

Module Module1

    Sub Main()

        Dim dec As Decimal
        Console.WriteLine(dec)'0
        Console.WriteLine(dec = Nothing)'True

        dec = Nothing
        Console.WriteLine(dec)'0
        Console.WriteLine(dec = Nothing)'True

        dec = 1D
        Console.WriteLine(dec)'1
        Console.WriteLine(dec = Nothing)'False

        dec = 0D
        Console.WriteLine(dec)'0
        Console.WriteLine(dec = Nothing)'True
    End Sub

End Module

Decimal型を宣言しただけで初期値に「0」が設定されます。
Decimal型に「Nothing」を設定しても「0」になります。
Decimal型に「0」を設定しても「Nothing」と見なします。

これは値型(プリミティブ型)は初期値に「0」が設定されるためです。

Nothing を許容するDecimal型を使いたい場合は変数の型に「?」を付けて「Decimal?」とします。

サンプルコード

Module Module1

    Sub Main()

        Dim Ndec As Decimal? '後ろに ? を付ける
        Console.WriteLine(Ndec)' ※表示なし
        Console.WriteLine(Ndec Is Nothing)'True

        Ndec = Nothing
        Console.WriteLine(Ndec)' ※表示なし
        Console.WriteLine(Ndec Is Nothing)'True

        Ndec = 1D
        Console.WriteLine(Ndec)'1
        Console.WriteLine(Ndec Is Nothing)'False

        Ndec = 0D
        Console.WriteLine(Ndec)'0
        Console.WriteLine(Ndec Is Nothing)'False
    End Sub

End Module

コメント

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