VB.NET Nothing、Null、DBNullの違いと判定方法
VB.NET
でNothing
(Null
)やDBNull
の判定を行う方法を紹介します。
NothingとNullとDBNullの違い
判定方法を紹介する前にNothing
とNull
とDBNull
の違いについて確認します。
C#
でのNull
をVB.NET
ではNothing
として扱います。
なのでVB.NET
ではNothing
とNull
は同じものとして考えてもらって問題ありません。
DBNull
はデータベースを扱う場合に使用します。
データベースにNull
が登録されていたり、Null
を登録したい場合などに使用します。
Nothingの判定方法
Nothing
は以下のように判定します。
If foo Is Nothing Then
'fooはNothing
Else
'fooはNothingではない
End If
実際はNothing
ではない場合のみ処理をしたいということがよくあるので、以下のようにNot
やIsNot
を使用して判定することが多いです。
If Not foo Is Nothing Then
'fooはNothingではない
Else
'fooはNothing
End If
'または
If foo IsNot Nothing Then
'fooはNothingではない
Else
'fooはNothing
End If
= False
としても同じですが、Not
やIsNot
のほうが可読性がよいので、Nothing
の判定についてはサンプルなどでもNot
を使用した方法をよく見かけます。
DBNullの判定方法
DBNull
は以下のように判定します。
If foo Is DBNull.Value Then
'fooはDBNull
Else
'fooはDBNullではない
End If
Nothing
と同様にNot
やIsNot
を使って判定することが多いです。
NothingとDBNullは別物
以下の通り、Nothing
とDBNull
は別物なので注意が必要です。
If Nothing Is DBNull.Value Then
Console.Write("NothingとDBNullは同じ")
Else
Console.Write("NothingとDBNullは別")
End If
'出力結果
'NothingとDBNullは別