Share via


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

Booleano

Boolean

Implementar depende da plataforma

True ou False

Byte

Byte

1 bytes

0 a 255 (sem sinal)

Char (caractere único)

Char

2 bytes

0 a 65535 (sem sinal)

Date

DateTime

8 bytes

0:00: 00 (meia-noite) o 1º de janeiro, 0001 com o 11:59: 59. O 31, 9999 de dezembro

Decimal

Decimal

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)

Double

8 bytes

-1.79769313486231570E+308 até -4.94065645841246544E-324 † para valores negativos;

4.94065645841246544E-324 para 1.79769313486231570E+308 † para valores positivos

Integer

Int32

4 bytes

-2.147.483.648 a 2.147.483.647 (assinado)

Long inteiro longo ()

Int64

8 bytes

-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (9,2… E+18 †) (assinados)

Object

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

SByte

SByte

1 bytes

-128 a 127 (assinado)

Short inteiro (curto)

Int16

2 bytes

-32.768 a 32.767 (assinado)

(Única de ponto flutuante de precisão simples)

Single

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

UInteger

UInt32

4 bytes

0 a 4.294.967.295 (sem sinal)

ULong

UInt64

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

UShort

UInt16

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.

ObservaçãoObservação

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.

47zceaw7.collapse_all(pt-br,VS.110).gifTipos 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.

47zceaw7.collapse_all(pt-br,VS.110).gifSobrecarga 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 de tipo (Visual Basic)

Resumo de conversão (Visual Basic)

StrConv

StructLayoutAttribute

Conceitos

Caracteres de tipo (Visual Basic)

Uso eficiente dos tipos de dados (Visual Basic)