Tipo de dados definido pelo usuário

Contém dados em um formato definido por você. A Structure instrução define o formato.

Versões anteriores do Visual Basic suportam o tipo definido pelo usuário (UDT). A versão atual expande a UDT para uma estrutura. Uma estrutura é uma concatenação de um ou mais membros de vários tipos de dados. Visual Basic trata uma estrutura como uma única unidade, embora você também pode acessar seus membros individualmente.

Observações

Defina e use um tipo de dados de estrutura quando precisar combinar vários tipos de dados em uma única unidade ou quando nenhum dos tipos de dados elementares atender às suas necessidades.

O valor padrão de um tipo de dados de estrutura consiste na combinação dos valores padrão de cada um de seus membros.

Formato da declaração

Uma declaração de estrutura começa com a Declaração de Estrutura e termina com a End Structure instrução. A Structure instrução fornece o nome da estrutura, que também é o identificador do tipo de dados que a estrutura está definindo. Outras partes do código podem usar esse identificador para declarar variáveis, parâmetros e valores de retorno de função como sendo do tipo de dados dessa estrutura.

As declarações entre as Structure declarações e End Structure definem os membros da estrutura.

Níveis de Acesso de Membros

Você deve declarar cada membro usando uma Declaração Dim ou uma instrução que especifique o nível de acesso, como Público, Amigo ou Privado. Se você usar uma Dim instrução, o padrão de nível de acesso será público.

Dicas de programação

  • Consumo de memória. Como acontece com todos os tipos de dados compostos, não é possível calcular com segurança o consumo total de memória de uma estrutura somando as alocações nominais de armazenamento de seus membros. Além disso, você não pode assumir com segurança que a ordem de armazenamento na memória é a mesma que a sua ordem de declaração. Se precisar controlar o layout de armazenamento de uma estrutura, você pode aplicar o StructLayoutAttribute atributo à Structure instrução.

  • Considerações de interoperabilidade. Se você estiver fazendo interface com componentes não escritos para o .NET Framework, por exemplo, automação ou objetos COM, lembre-se de que os tipos definidos pelo usuário em outros ambientes não são compatíveis com tipos de estrutura do Visual Basic.

  • Alargamento. Não há conversão automática de ou para qualquer tipo de dados de estrutura. Você pode definir operadores de conversão em sua estrutura usando a Declaração de Operador e pode declarar cada operador de conversão como sendo Widening ou Narrowing.

  • Digite caracteres. Os tipos de dados de estrutura não têm caractere de tipo literal ou caractere de tipo de identificador.

  • Tipo de estrutura. Não há nenhum tipo correspondente no .NET Framework. Todas as estruturas herdam da classe System.ValueType.NET Framework , mas nenhuma estrutura individual corresponde a System.ValueType.

Exemplo

O paradigma a seguir mostra o esboço da declaração de uma estrutura.

[Public | Protected | Friend | Protected Friend | Private] Structure structname
    {Dim | Public | Friend | Private} member1 As datatype1
    ' ...
    {Dim | Public | Friend | Private} memberN As datatypeN
End Structure

Consulte também