除了 Visual Basic 提供的基本数据类型外,还可以组合不同类型的项来创建 复合数据类型 ,例如结构、数组和类。 可以从基本类型和其他复合类型生成复合数据类型。 例如,可以定义结构元素的数组,也可以定义包含数组成员的结构。
数据类型
复合类型与其任何组件的数据类型不同。 例如,元素数组 Integer
不是 Integer
数据类型。
数组数据类型通常根据需要使用元素类型、括号和逗号表示。 例如,一维元素数组 String
表示为 String()
,元素的 Boolean
二维数组表示为 Boolean(,)
。
结构类型
没有包含所有结构的单个数据类型。 相反,结构的每个定义都表示唯一的数据类型,即使两个结构按相同顺序定义相同的元素也是如此。 但是,如果创建同一结构的两个或多个实例,Visual Basic 会将它们视为同一数据类型。
元组
元组是一种轻量级结构,包含两个或多个字段,这些字段的类型是预定义的。 从 Visual Basic 2017 开始支持元组。 元组最常用于从单个方法调用中返回多个值,而无需通过引用传递参数或将返回字段包装在一个更复杂的类或结构中。 有关元组的详细信息,请参阅元组主题。
数组类型
没有包含所有数组的单个数据类型。 数组特定实例的数据类型由以下决定:
是数组这一事实
数组的排名(维度数)
数组的元素类型
具体而言,给定维度的长度不是实例数据类型的一部分。 下面的示例对此进行了演示。
Dim arrayA( ) As Byte = New Byte(12) {}
Dim arrayB( ) As Byte = New Byte(100) {}
Dim arrayC( ) As Short = New Short(100) {}
Dim arrayD( , ) As Short
Dim arrayE( , ) As Short = New Short(4, 10) {}
在前面的示例中,数组变量 arrayA
和 arrayB
被视为同一数据类型, Byte()
即使它们初始化为不同的长度也是如此。 变量 arrayB
和 arrayC
不是同一类型,因为它们的元素类型不同。 变量 arrayC
和 arrayD
类型不同,因为它们的排名不同。 变量 arrayD
和 arrayE
具有相同的类型 - Short(,)
因为它们的排名和元素类型相同,即使 arrayD
尚未初始化。
有关数组的详细信息,请参阅 数组。
类类型
没有包含所有类的单个数据类型。 虽然一个类可以从另一个类继承,但每个类都是单独的数据类型。 同一类的多个实例具有相同的数据类型。 如果将一个类实例变量分配给另一个类实例,它们不仅具有相同的数据类型,还指向内存中的同一类实例。
有关类的详细信息,请参阅 对象和类。