Partilhar 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 a partir de tipos elementares e de outros tipos compostos. Por exemplo, você pode definir uma matriz de elementos de estrutura ou uma estrutura com membros de 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.

Um tipo de dados de matriz é normalmente 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 abranja 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 considera-as do mesmo tipo de dados.

Tuplas

Uma tupla é uma estrutura leve que contém dois ou mais campos cujos tipos são predefinidos. Tuplas são suportadas 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 ter que 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á um único tipo de dados que inclua 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 da 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 isso.

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 arrayA de matriz e arrayB são consideradas do mesmo tipo de dados — Byte() mesmo que sejam inicializadas em comprimentos diferentes. Variáveis arrayB e arrayC não são do mesmo tipo porque seus tipos de elementos são diferentes. Variáveis arrayC e arrayD não são do mesmo tipo porque suas fileiras são diferentes. Variáveis arrayD e arrayE têm o mesmo tipo — Short(,) — porque suas fileiras e tipos de elementos são os mesmos, mesmo que arrayD ainda não tenha sido inicializado.

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

Tipos de classe

Não existe um único tipo de dados que abranja 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, elas não apenas terão o mesmo tipo de dados, como apontarão para a mesma instância de classe na memória.

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

Consulte também