Compartilhar via


Tipos de dados compostos (Visual Basic)

Além dos tipos de dados elementares fornecidos pelo Visual Basic, você também pode montar itens de diferentes tipos para criar tipos de dados compostos, como estruturas, matrizes e classes. Você pode criar tipos de dados compostos de tipos elementares e de outros tipos compostos. Por exemplo, você pode definir uma matriz de elementos de estrutura ou uma estrutura com membros da matriz.

Tipos de dados

Um tipo composto é diferente do tipo de dados de qualquer um de seus componentes. Por exemplo, uma matriz de Integer elementos não é do Integer tipo de dados.

Normalmente, um tipo de dados de matriz é representado usando o tipo de elemento, parênteses e vírgulas, conforme necessário. Por exemplo, uma matriz unidimensional de String elementos é representada como String(), e uma matriz bidimensional de Boolean elementos é representada como Boolean(,).

Tipos de estrutura

Não existe um único tipo de dados que abrange todas as estruturas. Em vez disso, cada definição de uma estrutura representa um tipo de dados exclusivo, mesmo que duas estruturas definam elementos idênticos na mesma ordem. No entanto, se você criar duas ou mais instâncias da mesma estrutura, o Visual Basic as considerará do mesmo tipo de dados.

Tuplas

Uma tupla é uma estrutura leve que contém dois ou mais campos cujos tipos são predefinidos. Há suporte para tuplas a partir do Visual Basic 2017. As tuplas são mais comumente usadas para retornar vários valores de uma única chamada de método sem precisar passar argumentos por referência ou empacotar os campos retornados em uma classe ou estrutura mais pesada. Consulte o tópico Tuplas para obter mais informações sobre tuplas.

Tipos de matriz

Não há nenhum tipo de dados único para todas as matrizes. O tipo de dados de uma instância específica de uma matriz é determinado pelo seguinte:

  • O fato de ser uma matriz

  • A classificação (número de dimensões) da matriz

  • O tipo de elemento de uma matriz

Em particular, o comprimento de uma determinada dimensão não faz parte do tipo de dados da instância. O exemplo a seguir ilustra essa situação.

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

No exemplo anterior, as variáveis de matriz e arrayA são consideradas arrayB do mesmo tipo de dados — Byte() embora sejam inicializadas com comprimentos diferentes. Variáveis arrayB e arrayC não são do mesmo tipo porque seus tipos de elemento são diferentes. Variáveis arrayC e arrayD não são do mesmo tipo porque suas classificações são diferentes. Variáveis arrayD e arrayE têm o mesmo tipo — Short(,) porque suas classificações e tipos de elemento são iguais, embora ainda não tenham arrayD sido inicializados.

Para obter mais informações sobre matrizes, confira Matrizes.

Tipos de classe

Não existe um único tipo de dados que abrange todas as classes. Embora uma classe possa herdar de outra classe, cada uma é um tipo de dados separado. Várias instâncias da mesma classe são do mesmo tipo de dados. Se você atribuir uma variável de instância de classe a outra, não só elas têm o mesmo tipo de dados, como apontam para a mesma instância de classe na memória.

Para obter mais informações sobre classes, consulte Objetos e Classes.

Confira também