首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB的Null和Empty关键字,该如何解决

2013-01-26 
VB的Null和Empty关键字将VB的Null和Empty分别赋值给变量,那么变量所在的内存区域会作何变化呢?在VB有办法

VB的Null和Empty关键字
将VB的Null和Empty分别赋值给变量,那么变量所在的内存区域会作何变化呢?

在VB有办法释放一个变量的内存空间吗?
[解决办法]
摘录自MSDN

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。

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

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


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


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

Z = Null

也可用 IsNull 函数测试 Variant 变量是否包含 Null 值。

If IsNull (X) And IsNull (Y) Then
   Z = Null
Else
   Z = 0
End If

如果将 Null 值赋予 Variant 以外的任何其它类型变量,则将出现可以捕获的错误。而将 Null 值赋予 Variant 则不会发生错误,Null 将通过包含 Variant 变量的表达式传播(尽管 Null 并不通过某些函数来传播)。可以从任何具有 Variant 返回值的函数过程返回 Null。

除非明确将 Null 赋予变量,否则变量不会设置成 Null 值,所以,如果不在应用程序中使用 Null,就不必书写测试 Null 和处理 Null 的程序。

详细信息 关于如何在表达式中使用 Null 的详细信息,请参阅语言参考的“Null”部分。


[解决办法]
VB的垃圾回收基于COM的机制——引用计数,当一个变量的引用计数为0了,自然就回收了,不需要你操心。
[解决办法]
函数内局部变量是函数调用开始时在上分配一块内存,每个变量在这块内存中的对应位置都是固定的,所以不存在单独释放的可能。
只有在上动态分配的内容(字符串、数组、对象实例等),才可能动态释放。

热点排行