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


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

    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

  • 相关阅读:
    aps.net Core3.1 Session和MemoryCache的使用
    mybatis返回主键ID(自增和非自增)的两种方式
    html 中video标签视频不自动播放的问题
    springboot使用HTML播放接口返回的视频流
    springboot启动报错:Cannot determine embedded database driver class for database type NONE
    NIO编程文档
    查看Elasticsearch的索引
    mysql数据查询时间空缺的情况下回补时间数据
    数据优化查询之索引学习
    TCP,UDP和socket,Http之间联系和区别
  • 原文地址:https://www.cnblogs.com/guziming/p/4232785.html
Copyright © 2020-2023  润新知