Compartilhar via


Resumo de tipo de dados (Visual Basic)

A tabela a seguir mostra os tipos de dados de Visual Basic, seus tipos de suporte Common Language Runtime , a alocação de armazenamento nominal e seus intervalos de valores.

Tipo de Visual Basic

Common language tempo de execução tipo estrutura

Alocação de armazenamento nominal

Intervalo deValor

Boolean

Boolean

Depende da implementação da plataforma

TrueouFalse

Byte

Byte

1 byte

0 a 255 (sem sinal)

Char (um único caractere)

Char

2 bytes

0 a 65535 (sem sinal)

Date

DateTime

8 bytes

0: 00: 00 (meia-noite) em 1º de janeiro de 0001 por meio de 11:59:59 PM em 31 de dezembro de 9999

Decimal

Decimal

16 bytes

0 a + /-79.228.162.514.264.337.593.543.950.335 (+ /-7,9...E+ 28) † sem ponto decimal ; 0 a + /-7,9228162514264337593543950335 com 28 casas à direita do decimal;

menor número diferente de zero é + /-0,0000000000000000000000000001 (+ /-1E-28) †

Double (dupla precisão-((double-precision floating-point)) de ponto flutuante)

Double

8 bytes

-1.79769313486231570E + 308 através de - 4.94065645841246544E-324 † para valores negativos;

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

Integer

Int32

4 bytes

-2.147.483.648 a 2.147.483.647 (assinado)

Longo ( inteirolongo)

Int64

8 bytes

-9.223.372.036.854.775.808 através de 9.223.372.036.854.775.807 (9.2...18 E+ †) (assinado)

Objeto

Object(classe)

plataformade 4 bytes em-de 32 bits

plataformade 8 bytes em-de 64 bits

Qualquer tipo pode ser armazenado em uma variável do tipoObject

SByte

SByte

1 byte

-128 a 127 (assinado)

Curto (abreviada inteiro)

Int16

2 bytes

-32.768 até 32.767 (assinado)

Único (precisão simples ((single-precision floating-point)) de ponto flutuante)

Single

4 bytes

-3.4028235E + 38 através de - 1, 401298E-45 † para valores negativos;

-De 1, 401298E 45 a 3.4028235E + 38 † para valores positivos

String (variável-comprimento)

String(classe)

Depende da implementação da plataforma

0 a aproximadamente 2 bilhões Unicode de caracteres

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...19 E+ †) (sem sinal)

Definido pelo usuário- (estrutura)

(herda de ValueType)

Depende da implementação da plataforma

Cada membro da estrutura tem um intervalo determinado pelo seu tipo de dados e independentes dos intervalos dos 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 seqüências de caracteres contendo texto, use o StrConv função para converter do formato de texto de um para outro.

Consumo de memória

Quando você declara um tipo de dadosde elementar, não é seguro pressupor que o seu consumo de memória é o mesmo que sua alocação de armazenamento nominal. Isso é devido a considerações a seguir:

  • Atribuição de armazenamento. O Common Language Runtime pode atribuir o armazenamento com base nas características da plataforma em que seu aplicativo está em execução atuais. Se a memória está quase cheia, ele talvez pack seus elementos declarados como perto juntos como possíveis. Em outros casos, ele pode alinhar sua memória atende aos limites de hardware natural para otimizarodesempenho.

  • Largura de plataforma. Atribuição de armazenamento em 64-bits plataforma é diferente da atribuição em uma plataformade bit-32.

Composite Data Types

O mesmo considerações aplicar a cada membro de um tipo de dados composto, como, por exemplo, uma estrutura ou uma matriz. Você não pode depender simplesmente adicionando juntas as alocações de armazenamento nominal dos membros do tipo. Além disso, existem outras considerações, como, por exemplo, o seguinte:

  • Sobrecarga. Alguns tipos compostos têm requisitos adicionais de memória . Por exemplo, uma matriz usa o extra de memória para o próprio array e também para cada dimensão. Em uma 32-bits plataforma, essa sobrecarga é atualmente 12 bytes mais 8 bytes para cada dimensão. Em uma plataforma de bit-64 esse requisito é dobrado.

  • Layout de armazenamento. Você não pode afirmar que a ordem de armazenamento em memória é o mesmo que seu pedido de declaração. Você ainda não pode fazer suposições sobre o byte alinhamento, como, por exemplo, 2 -byte ou 4 - limite debyte . Se você está definindo uma classe ou estrutura , e você precisar controlar o layout de armazenamento de seus membros, você pode aplicar o StructLayoutAttributedeatributo para a classe ou estrutura.

Sobrecarga de objeto

Um Object referindo-se a qualquer elementar ou tipo de dados 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 de tipos de dados (Visual Basic)