【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
コメント