对象数据类型的变量可以引用任何类型的数据。 存储在变量中的 Object
值保存在内存中的其他位置,而变量本身则保存指向数据的指针。
对象分类器函数
Visual Basic 提供了一些函数,这些函数返回关于Object
变量所引用的信息,如下表所示。
功能 | 如果对象变量引用某个对象,则返回 True |
---|---|
IsArray | 值数组,而不是单个值 |
IsDate | 日期数据类型值或可解释为日期和时间值的字符串 |
IsDBNull | 类型 DBNull对象,表示缺失或不存在的数据 |
IsError | 从Exception派生的异常对象 |
IsNothing | 无任何内容,即当前未向变量分配任何对象 |
IsNumeric | 数字或可解释为数字的字符串 |
IsReference | 引用类型(如字符串、数组、委托或类类型) |
可以使用这些函数来避免向操作或程序提交无效值。
TypeOf 运算符
还可以使用 TypeOf 运算符 来确定对象变量当前是否引用特定的数据类型。 TypeOf
Is
表达式的计算结果为True
,如果操作数的运行时类型是从指定类型派生或实现的。
以下示例对引用值和引用类型的对象变量使用 TypeOf
。
' The following statement puts a value type (Integer) in an Object variable.
Dim num As Object = 10
' The following statement puts a reference type (Form) in an Object variable.
Dim frm As Object = New Form()
If TypeOf num Is Long Then Debug.WriteLine("num is Long")
If TypeOf num Is Integer Then Debug.WriteLine("num is Integer")
If TypeOf num Is Short Then Debug.WriteLine("num is Short")
If TypeOf num Is Object Then Debug.WriteLine("num is Object")
If TypeOf frm Is Form Then Debug.WriteLine("frm is Form")
If TypeOf frm Is Label Then Debug.WriteLine("frm is Label")
If TypeOf frm Is Object Then Debug.WriteLine("frm is Object")
前面的示例将以下行写入 “调试” 窗口:
num is Integer
num is Object
frm is Form
frm is Object
对象变量 num
引用类型的 Integer
数据,并 frm
引用类 Form的对象。
对象数组
可以声明和使用变量数组 Object
。 当你需要处理各种数据类型和对象类时,这非常有用。 数组中的所有元素都必须具有相同声明的数据类型。 将此数据类型声明为 Object
允许将对象和类实例与其他数据类型一起存储在数组中。