Resumo do tipo de dados (Visual Basic)
A tabela seguinte mostra tipos de dado do Visual Basic, o tempo de execução de suporte language runtime digita, a alocação de armazenamento substantiva, e seus intervalos de valores.
Tipo do Visual Basic |
Estrutura do tipo do common language runtime |
Alocação de armazenamento substantiva |
Intervalo valor |
---|---|---|---|
Implementar depende da plataforma |
True ou False |
||
1 bytes |
0 a 255 (sem sinal) |
||
Char (caractere único) |
2 bytes |
0 a 65535 (sem sinal) |
|
8 bytes |
0:00: 00 (meia-noite) o 1º de janeiro, 0001 com o 11:59: 59. O 31, 9999 de dezembro |
||
16 bytes |
0 através +/-0.0000000000000000000000000001 (+/-7.9228162514264337593543950335 -79.228.162.514.264.337.593.543.950.335 -7,9… E+28) † sem o ponto decimal; 0 por meio para +/- -7,9228162514264337593543950335 com um de 28 locais para a direita do decimal; o número diferente de zero o menor é +/-7.9228162514264337593543950335 -0,0000000000000000000000000001 (+/-1E-28) † |
||
(Duplo de ponto flutuante de precisão dupla) |
8 bytes |
-1.79769313486231570E+308 até -4.94065645841246544E-324 † para valores negativos; 4.94065645841246544E-324 para 1.79769313486231570E+308 † para valores positivos |
|
4 bytes |
-2.147.483.648 a 2.147.483.647 (assinado) |
||
Long inteiro longo () |
8 bytes |
-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (9,2… E+18 †) (assinados) |
|
Object (classe) |
4 bytes na plataforma de 32 bits 8 bytes na plataforma de 64 bits |
Qualquer tipo pode ser armazenado em uma variável do tipo Object |
|
1 bytes |
-128 a 127 (assinado) |
||
Short inteiro (curto) |
2 bytes |
-32.768 a 32.767 (assinado) |
|
(Única de ponto flutuante de precisão simples) |
4 bytes |
até -1.401298e † - 3.4028235e+38 para valores negativos; variando para valores positivos a 3.4028235E+38 † |
|
Cadeia de caracteres de comprimento variável) |
String (classe) |
Implementar depende da plataforma |
aproximadamente 0 a 2 caracteres Unicode bilhão |
4 bytes |
0 a 4.294.967.295 (sem sinal) |
||
8 bytes |
0 a 18.446.744.073.709.551.615 (1,8… E+19 †) (sem sinal) |
||
Definido pelo usuário (estrutura) |
(herda de ValueType) |
Implementar depende da plataforma |
Cada membro de estrutura tem um intervalo determinado por seu tipo de dados e independente de intervalos de outros membros |
2 bytes |
0 a 65.535 (sem sinal) |
†Na notação científica, “E” refere-se a uma potência de 10. Portanto 3.56E+2 significa 3,56 x 102 ou 356, e 3.56E-2 significa 3,56 / 102 ou 0,0356.
Dica
Para cadeias de caracteres que contêm texto, use a função de StrConv para converter de um formato de texto para outro.
Além de especificar um tipo de dados em uma instrução de declaração, você pode forçar o tipo de dados de alguns elementos de programação usando um caractere de tipo. Consulte Caracteres de tipo (Visual Basic).
Consumo de memória
Quando você declara um tipo de dados elementar, não é seguro suponha que seu consumo de memória é o mesmo que a alocação de armazenamento substantiva. Isso é devido às seguintes condições:
Atribuição de armazenamento. O common language runtime pode atribuir o armazenamento com base nas características atuais de plataforma no qual seu aplicativo está sendo executado. Se a memória está quase completa, pode compactar os seus elementos declarados tão próximas uma possível. Em outros casos pode alinhar os endereços de memória para os limites naturais de hardware para otimizar o desempenho.
Largura da plataforma. A atribuição de armazenamento em uma plataforma de 64 bits é diferente de atribuir em uma plataforma de 32 bits.
Tipos de dados compostos
As mesmas considerações se aplicam a cada membro de um tipo de dados composto, como uma estrutura ou uma matriz. Você não pode depender simplesmente adicionar juntos nas alocações de armazenamento nominais de membros do tipo. Além disso, há outras considerações, como o seguinte:
Sobrecarga. Alguns tipos compostos têm requisitos de memória adicionais. Por exemplo, uma matriz usa a memória adicional para a própria matriz e também para cada dimensão. Em uma plataforma de 32 bits, essa sobrecarga está atualmente 12 bytes mais 8 bytes para cada dimensão. Em uma plataforma de 64 bits esse requisito é duplicado.
Layout do armazenamento. Você não pode assumir com segurança que a ordem de armazenamento na memória é o mesmo que suas declarações. Você pode nem fazer suposições sobre o alinhamento de bytes, como limite de 2 bytes um byte ou 4. Se você estiver definindo uma classe ou estrutura e você precisam controlar o layout do armazenamento de seus membros, você pode aplicar o atributo de StructLayoutAttribute a classe ou estrutura.
Sobrecarga de objeto
Object fazendo referência a qualquer tipo de dados elementar ou composto usa 4 bytes além dos dados contidos no tipo de dados.
Consulte também
Referência
Funções de conversão do tipo (Visual Basic)
Resumo da conversão (Visual Basic)