Tipo de dados definido pelo usuário
Contém dados em um formato que você define. A instrução Structure
define o formato.
As versões anteriores do Visual Basic dão suporte ao UDT (tipo definido pelo usuário). A versão atual expande o UDT para uma estrutura. Uma estrutura é uma concatenação de um ou mais membros de vários tipos de dados. O Visual Basic trata uma estrutura como uma unidade única, embora você também possa acessar os respectivos membros individualmente.
Comentários
Defina e use um tipo de dados de estrutura quando precisar combinar vários tipos de dados em uma unidade única ou quando nenhum dos tipos de dados elementares atender às necessidades.
O valor padrão de um tipo de dados de estrutura consiste na combinação dos valores padrão de cada um dos respectivos membros.
Formato de declaração
Uma declaração de estrutura começa com a Instrução Structure e termina com a instrução End Structure
. A instrução Structure
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 instruções Structure
e End Structure
definem os membros da estrutura.
Níveis de acesso de membro
Você deve declarar cada membro usando uma Instrução Dim ou uma instrução que especifique o nível de acesso, como Público, Amigo ou Privado. Se você usar uma instrução Dim
, o nível de acesso padrão será público.
Dicas de programação
Consumo de memória. Assim como acontece com todos os tipos de dados compostos, você não pode calcular com segurança o consumo total de memória de uma estrutura adicionando as alocações de armazenamento nominais de seus membros. Além disso, você não pode supor com segurança que a ordem de armazenamento na memória seja a mesma que sua ordem de declaração. Se você precisar controlar o layout de armazenamento de uma estrutura, poderá aplicar o atributo StructLayoutAttribute à instrução
Structure
.Considerações sobre interoperabilidade. Se você estiver estabelecendo interface com componentes não gravados para o .NET Framework, por exemplo, objetos de Automação ou COM, tenha em mente que os tipos definidos pelo usuário em outros ambientes não são compatíveis com os tipos de estrutura do Visual Basic.
Ampliação. Não há conversão automática para ou de qualquer tipo de dados de estrutura. Você pode definir operadores de conversão na estrutura usando a Instrução Operator e declarar que cada operador de conversão é
Widening
ouNarrowing
.Caracteres de tipo. Os tipos de dados de estrutura não têm caractere de tipo literal ou caractere de tipo de identificador.
Tipo do Framework. 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 contorno 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