vb6中存在几个虚幻的值:Null、Missing、Empty、Nothing、vbNullString。除了最后一个之外,每一个值都不能直接用“a=值”来判断。下面分别解释一下这几个值的含义。

1、Null。

Null指一个不合法的数据,判断一个变量是否为Null使用isNull函数。

这种数据通常出现在三种情况下:

(1)最简单的,函数直接返回Null给调用方。譬如

Function DivideEx(ByVal A as Double, ByVal B as Double) as Double

If B=0 Then DivideEx=Null Else DivideEx=A/B

End Function这个函数在B=0时返回Null指不合法数据。

(2)数据库中,当一个字段设为“允许空值”时,VB读取到空值就会用Null表示。譬如

Function GetCity(rst as ADODB.Recordset) as String

If isNull(rst.Field("City")) GetCity=rst.Field("Province") Else GetCity=rst.Field("City")

End Function在这个函数中,当City字段为空时(表示所在地区为一直辖市)返回Province字段,否则返回City字段。

(3)在调用库函数时,如果遇到传送变量类型与定义类型不一样时有时会出现Null值。

Null值在计算时有点奇怪,譬如Null-Null=Null,Null+10=10,Null+""=""等

2、Missing

Missing指传递进入Variant变量的缺少,判断Missing使用isMissing函数。譬如

Function test(Optional a)

If isMissing(a) Then test="You don't give this the varible a." Else test="You've given this the varible a."

End

Sub Main()

Debug.Print test '->You don't give this the varible a.

Debug.Print test(123) '->You've given this the varible a.

End Sub注意,Missing只会在Varient中出现,如果给入的数据类型是Byte,Integer,Long,Single,Double等缺少时为0;String缺少时为"";Object缺少时为Nothing。

3、Enpty

Empty指一个Variant变量未初始化,判断Empty使用isEmpty函数。譬如

Function test(a)

If isEmpty(a) Then test="a is Empty" Else test="a isn't Empty"

End Function

Sub Main()

Dim a as Variant

test(a) '->a is Empty

a=""

test(a) '->a isn't Empty

a=0

test(a) '->a isn't Empty

End Sub4、Nothing

Nothing相当于Object变量中的空值。指指向于空对象的引用。

未初始化的Object变量为Nothing;未传入函数的Object为Nothing。判断一个变量是否为Nothing使用 is Nothing表达式。

同时,Nothing还有另外一个用途,就是把所有指向某一个对象的Object变量赋值为Nothing可以销毁此对象节省内存空间。

5、vbNullString

vbNullString是一个String类型的常量,通常用于传递一个Null给库函数。不过很奇怪的是vbNullString=""这个表达式为True.

FROM:http://gerhut.net/blogger/2006/08/vb6nullmissingemptynothingvbnullstring.html

VB中判断空的几种方法,Null, Missing, Empty, Nothing, vbNullString区别的更多相关文章

  1. js中获取样式的俩种方法 style.color和style['color'] 区别

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Java常见重构技巧 - 去除不必要的!=null判断空的5种方式,很少有人知道后两种

    常见重构技巧 - 去除不必要的!= 项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?@pdai 常见重构技巧 - 去除不必要的!= 场景一:null无意义之常规判断空 ...

  3. VB模拟键盘输入的N种方法

    VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计 ...

  4. C#中实现并发的几种方法的性能测试

    C#中实现并发的几种方法的性能测试 0x00 起因 去年写的一个程序因为需要在局域网发送消息支持一些命令和简单数据的传输,所以写了一个C/S的通信模块.当时的做法很简单,服务端等待链接,有用户接入后开 ...

  5. PHP中获取星期的几种方法

    PHP中获取星期的几种方法   PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0 ...

  6. CSS中隐藏内容的3种方法及属性值

    CSS中隐藏内容的3种方法及属性值 (2011-02-11 13:33:59)   在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出 ...

  7. 关于iOS去除数组中重复数据的几种方法

    关于iOS去除数组中重复数据的几种方法   在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ...

  8. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

  9. php获取数组中重复数据的两种方法

    分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...

随机推荐

  1. ANTLR3完全参考指南读书笔记[05]

    前言 仅生成给出true/false的识别器是没有多大用处的,自然的就有在识别过程中遇到某一结构时执行一段代码.存储该结构中信息的想法. ANTLR提供了在文法中嵌入属性和动作超级混合“文法”,可以生 ...

  2. 传统解析xml的方式

    1. 介绍 1)DOM(JAXP Crimson解析器)          DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允 ...

  3. wordpress(一)wordpress环境的搭建

    搭建wordpress环境因为自动安装的脚本不提供创建数据库的功能,所以先要创建数据库. 1.使用如下命令创建数据库(都是在已经登陆的mysql界面中的命令) ①CREATE DATABASE 数据库 ...

  4. codeForce-19D Points (点更新+离散化)

    题目大意:在二维坐标系的x正半轴,y正半轴和第一象限内,有三种操作: 1.add x,y (添加点<x,y>): 2.remove x,y(移除点<x,y>): 3.find ...

  5. 什么是域名?什么网站名?什么是URL?

    域名,相信大家都不默认,也使用过无数次!比如: google.com.baidu.com.163.com等. 这时候,你可能要奇怪了,为什么小编没有在前面加上www? 因为正常情况下,不应该是www. ...

  6. sql commands

    1,DBCC SQLPERF(logspace) https://msdn.microsoft.com/en-us/library/ms189768.aspx 2, 1, LOGINFO(''HAHA ...

  7. Articles Every Programmer Must Read

    http://javarevisited.blogspot.sg/2014/05/10-articles-every-programmer-must-read.html Being a Java pr ...

  8. C# Regex.IsMatch (正则表达式验证:数字、小数点、邮件、计算表达式)

    public bool isInt(string str) { //^([+-]?)表示加减号只能出现在字符串开头且只有一位 ///d*表示后面可以有多个或一个十进制数 //$表示字符串结尾 retu ...

  9. shell脚本实例-matrix

    [Sat Feb 27 17:51:36 1038 /dev/pts/0 192.168.2.250 ~/sh]#cat matrix blue="\033[0;34m" brig ...

  10. unity, eulerAngle

    unity中欧拉角规定如下: A rotation that rotates euler.z degrees around the z axis, euler.x degrees around the ...