Tipo de dados Long (Visual Basic)

Contém inteiros de 64 bits (8 bytes) com sinal, que variam de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (9.2...E+18).

Comentários

Use o tipo de dados Long para conter números inteiros que são muito grandes para caber no tipo de dados Integer.

O valor padrão de Long é 0.

Atribuições literais

Você pode declarar e inicializar uma variável Long atribuindo a ela um literal decimal, hexadecimal, octal ou (a partir do Visual Basic 2017) binário. Se o literal inteiro estiver fora do intervalo de Long (ou seja, se for menor que Int64.MinValue ou maior que Int64.MaxValue, ocorrerá um erro de compilação.

No exemplo a seguir, inteiros iguais a 4.294.967.296 representados como literais decimais, hexadecimais e binários são atribuídos a valores Long.

Dim longValue1 As Long = 4294967296
Console.WriteLine(longValue1)

Dim longValue2 As Long = &H100000000
Console.WriteLine(longValue2)

Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
'          4294967296
'          4294967296
'          4294967296

Observação

Use o prefixo &h ou &H para indicar um literal hexadecimal, &b ou &B para indicar um literal binário e &o ou &O para indicar um literal octal. Literais decimais não têm nenhum prefixo.

A partir do Visual Basic 2017, você também pode usar o caractere de sublinhado, _, como separador de dígitos para melhorar a legibilidade, como no exemplo a seguir.

Dim longValue1 As Long = 4_294_967_296
Console.WriteLine(longValue1)

Dim longValue2 As Long = &H1_0000_0000
Console.WriteLine(longValue2)

Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
'          4294967296
'          4294967296
'          4294967296

A partir do Visual Basic 15.5, você também pode usar o caractere de sublinhado (_) como separador à esquerda entre o prefixo e os dígitos hexadecimais, binários ou octais. Por exemplo:

Dim number As Long = &H_0FAC_0326_1489_D68C

Para usar o caractere de sublinhado como separador à esquerda, você deve adicionar o seguinte elemento ao arquivo de projeto do Visual Basic (*.vbproj):

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

Para obter mais informações, consulte Selecionar a versão da linguagem Visual Basic.

Literais numéricos também podem incluir o caractere de tipo L para denotar o tipo de dados Long, como mostra o exemplo a seguir.

Dim number = &H_0FAC_0326_1489_D68CL

Dicas de programação

  • Considerações sobre interoperabilidade. Se você estiver fazendo interface com componentes não escritos para o .NET Framework, como objetos COM ou Automação, lembre-se de que Long possui uma largura de dados diferente (32 bits) em outros ambientes. Se você estiver passando um argumento de 32 bits para esse componente, declare-o como Integer em vez de Long no seu novo código do Visual Basic.

  • Ampliação. O tipo de dados Long é ampliado para Decimal, Single ou Double. Isso significa que você pode converter Long em qualquer um desses tipos sem a ocorrência de um erro System.OverflowException.

  • Caracteres de Tipo. Acrescentar o caractere de tipo literal L a um literal o força ao tipo de dados Long. Acrescentar o caractere de tipo identificador & a qualquer identificador o força ao tipo Long.

  • Tipo do Framework. O tipo correspondente no .NET Framework é a estrutura System.Int64.

Confira também