复合数据类型 (Visual Basic)

除了 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) {}  

在以上示例中,数组变量 arrayAarrayB 被视为相同的数据类型 (Byte()),即使它们初始化为不同的长度。 变量 arrayBarrayC 的类型不同,因为它们的元素类型不同。 变量 arrayCarrayD 的类型不同,因为它们的秩不同。 变量 arrayDarrayE 的类型相同(均为 Short(,)),因为它们的秩和元素类型相同,即使 arrayD 尚未初始化。

有关数组的详细信息,请参阅数组

类类型

不存在包括所有类的单一数据类型。 尽管一个类可以继承自另一个类,但每个类的数据类型不同。 同一个类的多个实例的数据类型相同。 如果将一个类实例变量赋给另一个类实例变量,则它们不仅具有相同的数据类型,而且还指向内存中的同一个类实例。

有关类的详细信息,请参阅对象和类

请参阅