zoukankan      html  css  js  c++  java
  • VB中判断空的几种方法,Null, Missing, Empty, Nothing, vbNullString区别

    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

  • 相关阅读:
    20080619 SQL SERVER 输入 NULL 的快捷键
    20090406 Adobe的“此产品的许可已停止工作”错误的解决办法
    20080908 Office Powerpoint 2007 不能输入中文的解决办法
    20080831 ClearGertrude Blog Skin 's cnblogs_code class
    20080603 Facebook 平台正式开放
    20080519 安装 Microsoft SQL Server 2000 时提示 创建挂起的文件操作
    test
    Linux—fork函数学习笔记
    SOA的设计理念
    Why BCP connects to SQL Server instance which start with account of Network Service fail?
  • 原文地址:https://www.cnblogs.com/zouhao/p/3664651.html
Copyright © 2011-2022 走看看