现在的位置: 首页 > 综合 > 正文

探究Null、Empty、VbNullstring、Nothing的异同

2013年07月13日 ⁄ 综合 ⁄ 共 836字 ⁄ 字号 评论关闭

       最近在做机房收费系统的时候,遇到这样一句代码。其实之前也遇到过,但是没有仔细去琢磨。这一琢磨不要紧,一琢磨问题就出来了。

Text1.text=””
和这样一句代码text1.text=vbnullstring开始的时候没有仔细去想,当成是同样的意思,其实不是的。这样就牵出了nullemptyvbnullstringnothing、“”等一系列看起来很神似的符号,整合网上的资料和陈伟的视频(个人感觉还是陈伟讲的透彻啊!真心膜拜。。。)

vbNullstring和“”

 

Dim a As String

这个时候a还没有附值,只是定义a为字符串类型,就是说还没有真正占用内存,地址是0。这时候 a 就是vbNullString
当执行以下这段代码的时候。

 

a =""

 

这时,a已经被赋值,尽管等于空字符串,但是已经占用了内存,地址就发生了变化。

Noting

代表是一个对象,什么都没有。没有具体的对象相对应,就是这个对象还没有创建。针对是一个对象,可以使用Isnothing来判断。

例:

Dim n as object

n就是这样一个没有初始化(恢复到默认状态)的对象。还有就是set obj =nothing,如大家经常见到的一样,就是释放这样obj的一个对象。

Empty

代表变量被初始化为空,初始化为string是为 “” ,而初始化为integer等数值型初始化为0.

Null

不代表任何值,不是0也不是nothing

举个例子:天气预报站,测量仪器坏了。这样中午没有记录了,这个数据信息不可能得到了。这个数据信息写0不对,是吧?其他值也不行。这样的值就是null值,没有任何意义。

再举个应用:

 

Grade

一班

1

78

2

Null

3

89

Average

(78+89)/2

如图在列表中,有个一个班级的成绩是null值。如果要计算班级的平均成绩对于null值,求和不进行求和。不进行整除。这时候的平均成绩就是83.5。如果要判断一个字符串是否为null值,用isnull函数,返回的是boolean

 

抱歉!评论已关闭.