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