私はNullに等しい変数を持っていますが、それがNullに等しいかどうか尋ねると "Null"になります。なぜそれは間違っていないでしょうか?null変数= ""はNullにエバリュエートしますか?
var1 = vbNull
Debug.Print var1 = ""
出力はNull
です。なぜそれがfalse
ではないでしょうか?
私はNullに等しい変数を持っていますが、それがNullに等しいかどうか尋ねると "Null"になります。なぜそれは間違っていないでしょうか?null変数= ""はNullにエバリュエートしますか?
var1 = vbNull
Debug.Print var1 = ""
出力はNull
です。なぜそれがfalse
ではないでしょうか?
VB6はnull propagationです。 Null
を含む式の結果は常にnullです。
' in this code below V always has the value Null
Dim V As Variant
V = 1 + Null
V = Null + Right$("SomeText", 1)
V = Right("SomeText", 0)
@CraigJ - 記事のリンクに示されているように、Null伝播はデータベースアプリケーションで一般的に使用されます。 VB6はVBA(Visual Basic for Applications)から発展し、VBAはAccessデータベースアプリケーションを含むMicrosoft Officeの自動化のニーズを考慮して開発されました。当時のように思えました:) – rskar
ウィキペディアは、Visual Basicが「放棄されたOmega」データベースシステム用に設計された組み込みBASICエンジンと組み合わされたGUIインターフェイスモジュール(コード名「Ruby」)として始まったことを示しています。したがって、VBは最初からDBアプリケーション用に設計されているようです。 – rskar
@rskar VB6はVBAから進化したとは思わない。それはおそらく他の方法ラウンドでした。 – CJ7
私はVBを忘れてしまいましたが、多くの言語で '=='は同義語で、 '=='は等価性チェックです。また、 "スマートな引用符"を見てください。 –
VB6では、単一の '='です。 – CJ7
「なぜ」は本当に有効な質問ではありません。唯一の答えは、「それは=どのように実装されたのか」です。 – Bob77