Tipos de datos compuestos (Visual Basic)

Además de los tipos de datos básicos que proporciona Visual Basic, también puede ensamblar elementos de diferentes tipos para crear tipos de datos compuestos, como estructuras, matrices y clases. Puede crear tipos de datos compuestos a partir de tipos básicos y de otros tipos compuestos. Por ejemplo, puede definir una matriz de elementos de estructura o una estructura con miembros de matriz.

Tipo de datos

Un tipo compuesto es diferente del tipo de datos de cualquiera de sus componentes. Por ejemplo, una matriz de elementos Integer no es del tipo de datos Integer.

Normalmente, un tipo de datos de matriz se representa mediante el tipo de elemento, los paréntesis y las comas según sea necesario. Por ejemplo, una matriz unidimensional de elementos String se representa como String() y una matriz bidimensional de elementos Boolean se representa como Boolean(,).

Tipos de estructuras

No hay un solo tipo de datos que incluya todas las estructuras. En su lugar, cada definición de una estructura representa un tipo de datos único, incluso si dos estructuras definen elementos idénticos en el mismo orden. Sin embargo, si crea dos o más instancias de la misma estructura, Visual Basic las considera del mismo tipo de datos.

Tuplas

Una tupla es una estructura ligera que contiene dos o más campos cuyos tipos están predefinidos. Las tuplas se admiten a partir de Visual Basic 2017. Las tuplas se usan normalmente para devolver varios valores desde una sola llamada de método sin tener que pasar argumentos por referencia o empaquetar los campos devueltos en una estructura o clase más pesada. Consulte el tema Tuplas para más información sobre las tuplas.

Tipos de matriz

No hay un solo tipo de datos que incluya todas las matrices. El tipo de datos de una instancia determinada de una matriz viene determinado por lo siguiente:

  • El hecho de ser una matriz

  • El rango (número de dimensiones) de la matriz.

  • El tipo de elemento de la matriz.

En concreto, la longitud de una dimensión determinada no forma parte del tipo de datos de la instancia. Esto se ilustra en el siguiente ejemplo:

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

En el ejemplo anterior, las variables arrayA y arrayB de la matriz se consideran del mismo tipo de datos, Byte(), aunque se inicialicen en longitudes diferentes. Las variables arrayB y arrayC no son del mismo tipo porque sus tipos de elemento son diferentes. Las variables arrayC y arrayD no son del mismo tipo porque sus rangos son diferentes. Las variables arrayD y arrayE tienen el mismo tipo, Short(,), porque sus rangos y tipos de elemento son los mismos, aunque arrayD aún no se haya inicializado.

Para más información sobre las matrices, consulte Matrices.

Tipos de clase

No hay un solo tipo de datos que incluya todas las clases. Aunque una clase puede heredar de otra clase, cada una es un tipo de datos independiente. Varias instancias de la misma clase son del mismo tipo de datos. Si asigna una variable de instancia de una clase a otra, no solo tienen el mismo tipo de datos, sino que también apuntan a la misma instancia de clase de la memoria.

Para más información sobre las clases, consulte Objetos y clases.

Consulte también