zoukankan      html  css  js  c++  java
  • 辨析VBA中的Empty,Null和Nothing

    辨析Empty,Null和Nothing

    在VBA中变量一般都是强类型的,即总声明成Integer,Long,Single,Double,String或Date等类型,这些强类型的值毋需考虑Empty、Null和Nothing。

    有时我们需要定义一种能包含所有类型的变量,这种类型就是Variant,它是一种特殊的数据类型,可以包含数值、字符串或日期数据,还包含自定义类型、对象(Object)和特殊数值Empty、Nothing和Null。对所有变量,如果没有明确声明它们是其它数据类型,则它们都变成 Variant 数据类型。因此Empty和Null只有对Variant变量才有意义。

    对于Empty、Nothing和Null,你都要知道,他们都是值,可以赋给Variant变量

    作为声明为Variant变量,如

     Dim vnt as Variant

    vnt只进行了声明未赋值,其值就是Empty(由系统自动赋予),表示vnt只是声明了但尚未初始化(即尚未通过程序赋值)。这是因为Variant可以是任何类型的值,但在初始化前无法确定实际的类型而不能给出符合类型的形式(如数值型的0或字符串型的"")。

    对于赋予Empty的Variant型变量,Empty是个有效数据(可以称为万能值),因为如果你认为这是数值型则值是0,认为是字符串型则值是""(空串)。所以以下的比较将是为真的

     If vnt = 0 Then  或 if vnt = "" Then 或 If IsEmpty(vnt) Then

    上面所述的数值、字符串或Empty都是有效数据,而当你将Null赋予vnt,如

     vnt = null

    则表示vnt不包含有效数据。对于值为Null的数据只是通过IsNull函数来判断。那什么时候要用Null呢?比如对于性别,有效数据只能是男或女,但没填算什么,就是无效数据嘛!可以用Null来表示。

    声明为Variant变量有一种叫对象变量。Nothing就是为对象变量赋值的,如

     Set vnt = Nothing

    对象变量使用时总指向一个对象,对象需要占用较大的内存资源,用完应该尽快释放。将对象变量设为Nothing就是通知系统对象变量不再使用那个对象,当那个对象没有任何对象变量再使用它后,系统便会释放该对象所占的内存资源。

    总结
    ----
    Empty、Null和Nothing都可为Variant变量赋值,声明时系统会设Variant变量为Empty,如果要将Variant变量设为无效数据可用Null,如果不再使用对象变量就应尽快将之设成Nothing以利系统释放资源。

  • 相关阅读:
    支持向量机(一)
    决策树(四)
    决策树(三)
    决策树(二)
    决策树(一)
    朴素贝叶斯(一)
    k近邻法(二)
    k近邻法(一)
    感知机
    mercurial 入门
  • 原文地址:https://www.cnblogs.com/lys_013/p/3024229.html
Copyright © 2011-2022 走看看