(空字串)、Null、Empty、與Nothing的區(qū)別

字號(hào):

先回答以下問(wèn)題吧! 經(jīng)過(guò)以下的敘述之后, 變量 A、B、C、D 分別等于 0、""、Null、 Empty、 Nothing 的哪一個(gè)?
    Dim A
    Dim B As String
    Dim C As Integer
    Dim D As Object
     A 等于 Empty, 因?yàn)樯形闯跏蓟摹覆欢ㄐ妥兞俊苟嫉扔?Empty。但如果檢測(cè) A = "" 或 A = 0, 也都可以得到 True 值。
     B 等于 "", 因?yàn)樯形闯跏蓟姆枪潭ㄩL(zhǎng)度「字串」都等于 "" 。 但請(qǐng)注意 B<> Null。
     C 等于 0, 這個(gè)很簡(jiǎn)單,沒(méi)問(wèn)題吧?
     D 等于 Nothing, 尚未設(shè)定有物件的「物件變量」都等于 Nothing, 但請(qǐng)不要使用 D = Nothing , 而要使用 D Is Nothing 來(lái)判斷 D 是否等于 Nothing, 因?yàn)榕袛?是否相等的符號(hào)是 Is 不是 = 。
     最令人迷惑的地方是 Null 這個(gè)保留字, 請(qǐng)看以下語(yǔ)句:來(lái)源:www.examda.com
    Print X = Null
    Print X <> Null
     結(jié)果都是輸出 Null(不是 True 也不是 False), 這是因?yàn)槿魏我粋€(gè)運(yùn)算式只要含有 Null , 則該運(yùn)算式就等于 Null, 實(shí)際上想要判斷某一數(shù)據(jù)是否為 Null 絕對(duì)不能使用:
     If X = Null Then ' 永遠(yuǎn)都會(huì)得到 Null
     而要使用:
     If IsNull(X) Then
     哪一種數(shù)據(jù)會(huì)等于 Null 呢? 除了含有 Null 運(yùn)算式之外, 就屬?zèng)]有輸入任何數(shù)據(jù)的「數(shù)據(jù)字段」(在數(shù)據(jù)庫(kù)中) 會(huì)等于 Null。