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 comoInteger
em vez deLong
no seu novo código do Visual Basic.Ampliação. O tipo de dados
Long
é ampliado paraDecimal
,Single
ouDouble
. Isso significa que você pode converterLong
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 dadosLong
. Acrescentar o caractere de tipo identificador&
a qualquer identificador o força ao tipoLong
.Tipo do Framework. O tipo correspondente no .NET Framework é a estrutura System.Int64.