VB6:「Null 判定の不思議」
Isnullでその変数値がnullであるかを確認することができますが、
実際にはisNull でしかnull を確認することはできない。という不思議。
例えば、
if a = null then
debug.print "通らない"
else
debug.print "通る"
end if
とあれば、実際には a の変数値がnull であろうが最初の判定文は
決してTrue にはならない。
そう考えるとこの構文を書けてしまうこと自体がワナに感じる。
VB では、null を判定式に含むものはすべてfalse と返すようにしているそうで、
おそらくnull とは何ぞや的な古い意味合いで強制(無条件)falseにしてるんだと思う。
であれば、判定式にNull 等価させる式も実行前バインドでどうにかすべきと感じる。
自分もたまにやります。Nullで判定式。(笑
すぐに誤動作するので「あれ?」ってなるけど。
ひょっとして全コンパイルすると判定したりするのかな・・?
今度やってみよう・・。