且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

vb中的null.nothing.empty区别

更新时间:2022-09-21 18:39:53

以下内容源自互联网:

变量 A、B、C、D 分别等于 0、""、Null、 Empty、 Nothing 的哪一个?

Dim A
Dim B As String
Dim C As Integer
Dim D As Object
A 等于 Empty, 因为尚未初始化的「不定型变量」都等于 Empty。但如果检

测 A = "" 或 A = 0, 也都可以得到 True 值。

对于Empty:

 

Empty 值
有时需要知道是否已将一个值赋予所创建的变量。在赋值之前,Variant 变量具有值 Empty。值 Empty 是异于0、零长度字符串 ("") 或 Null 值的特定值。可用 IsEmpty 函数测试 Empty 值:

If IsEmpty (Z) Then Z = 0

当 Variant 变量包含 Empty 值时,可在表达式中使用它;将其作为 0 或零长度字符串来处理,这要根据表达式来定。

只要将任何值(包括 0、零长度字符串或 Null)赋予 Variant 变量,Empty 值就会消失。而将关键字 Empty 赋予 Variant 变量,就可将 Variant 变量恢复为 Empty。

 

 


B 等于 "", 因为尚未初始化的非固定长度「字串」都等于 "" 。 但请注意
B<> Null。
C 等于 0, 这个还有问题吗?
D 等于 Nothing, 尚未设定有物件的「物件变量」都等于 Nothing, 但请不
要使用 D = Nothing , 而要使用 D Is Nothing 来判断 D 是否等于 Nothing,
因为判断 是否相等的符号是 Is 不是 = 。
最令人迷惑的地方是 Null 这个保留字, 请看以下语句:
Print X = Null
Print X <> Null
结果都是输出 Null(不是 True 也不是 False), 这是因为任何一个运算式只
要含有 Null , 则该运算式就等于 Null, 实际上想要判断某一数据是否为 Null
绝对不能使用:
If X = Null Then ' 永远都会得到 Null
而要使用:
If IsNull(X) Then
哪一种数据会等于 Null 呢? 除了含有 Null 运算式之外, 就属没有输入任

何数据的「数据字段」(在数据库中) 会等于 Null。

对于Null:

 

Null 值
Variant 数据类型还可包含一特定值:Null。Null通常用于数据库应用程序,表示未知数据或丢失的数据。 由于在数据库中使用 Null 方法,Null 具有某些唯一的特性: 

对包含 Null 的表达式,计算结果总是 Null。于是说 Null 通过表达式“传播”;如果表达式的部分之值为 Null,那么整个表达式的值也为 Null。

将 Null 值、含 Null 的 Variant 变量或计算结果为 Null 的表达式作为参数传递给大多数函数,将会使函数返回 Null。

Null 值经由返回 Variant 数据类型的内在函数传播。 
也可用 Null 关键字指定 Null 值。

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/3917129.html,如需转载请自行联系原作者