您的位置:首页 > 编程语言 > VB

关于Null、Empty、vbNullString、Nothing差别

2009-11-02 00:13 537 查看
这篇博客根据网友那里获取来的,不是本人亲写亲测。

Null:Null是一个象Integer或者String一样的变量类型,它表示一个没有合法数据的变量。

这有别于zero、Nothing、Empty或者vbNullString。许多数值与Null结合在一起,都将产生Null结果。

比如:    表达式 结果 Null - Null Null Null + 7 7 Null = Null Null   

你可以使用IsNull语句来判断表达式是否为Null:   

If IsNull(my_variable) Then ...   

Empty:这也是一个象Integer或者String一样的变量类型,它表示了一个还没有进行初始化的变量。它与Null的意义不同,

Null表示没有合法数据。    一个没有初始化的变量的数值是Empty。你可以使用IsEmpty语句来判断是否变量进行了初始化:

   If IsEmpty(my_variant) Then ...   

Nothing:这是一个指向空对象的对象引用。将对象引用设置为Nothing,就释放了那个对象。如果没有其他的引用指向对象,

Visual Basic就将销毁这个对象。    Dim obj As Form1    :    Set obj = Nothing

注释: Free the object reference.    使用Is Nothing语句来判断是否一个引用为Nothing:   

If obj Is Nothing Then ...    vbNullString:这是个常量,表示一个empty字符串。它与空白字符串""不同,

表示什么也没有的字符串(nothing string)。对于许多场合,它被当作一个empty字符串""处理,

真正使用它的目的是传递null参数给库函数。    Null是一个很奇怪的数值,它不是zero,不是Nothing,不是vbNullString。

它是没有定义的东西。    判断字符串是否为空白    有以下几种方法判断一个字符串是否为空白:

Dim txt As String

Dim blank As String blank = "" : If Len(txt) = 0 Then ...

If txt = vbNullString Then ... If txt = "" Then ... If txt = blank Then ...   

经过测试,Len(txt)=0的方法要比其他方法快20%多。

Nothing在VBA中的用途

我们常在VBA代码中看到Nothing这个单词,如:

Set d = Nothing

If d is Nothing

Nothing到底是什么意思呢?帮助里是这样解释的:

使用 Nothing 关键字被将对象变量从实际对象中分离开来。要使用 Set 语句将 Nothing 赋值给对象变量。

通俗一点就是判断某个对象是否存在(is Nothing)和从内存资源中释放这个对象(= Nothing)

例如我们在EP上找一个会员, 我们就可以这样写

Dim aa as Ep会员 '假设置Ep会员是一个对象类型

Set aa="小A" '用Set 设置对象变量为会员"小A"

If aa Is Nothing Then '如aa不存在

Msgbox "这个会员不存在"

Else

Msgbox "这个会员存在"

End If

-----------------------------------------------------------------------------------------------------------------

而且Set 对象变量=Nothing 则是把从非Excel库提库的外来引用对象从内存资源中释放出去.如

Dim d As New Dictionary '创建一个新的字典对象
Set d = Nothing '从内存资源中释放出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: