Tipo de datos Long (Visual Basic)
Contiene enteros de 64 bits (8 bytes) con signo cuyo valor oscila entre -9 223 372 036 854 775 808 y 9 223 372 036 854 775 807 (9,2…E+18).
Comentarios
Use el tipo de datos Long
para contener números enteros que son demasiados grandes para caber en el tipo de datos Integer
.
El valor predeterminado de Long
es 0.
Asignaciones de literales
Puede declarar e inicializar una variable Long
si la asigna a un literal decimal, un literal hexadecimal, un literal octal o (a partir de Visual Basic 2017) un literal binario. Si el literal entero está fuera del intervalo de Long
(es decir, si es inferior a Int64.MinValue o mayor que Int64.MaxValue, se produce un error de compilación.
En el ejemplo siguiente, los enteros que equivalen a 4 294 967 296 que se representan como literales binarios, hexadecimales y decimales se asignan 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
Nota
Use el prefijo &h
o &H
para denotar un literal hexadecimal, el prefijo &b
o &B
para denotar un literal binario y el prefijo &o
o &O
para denotar un literal octal. Los literales decimales no tienen prefijo.
A partir de Visual Basic 2017, también puede usar el carácter de subrayado, _
, como un separador de dígitos para mejorar la legibilidad, tal como se muestra en el ejemplo siguiente.
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 de Visual Basic 15.5 también puede usar el carácter de subrayado (_
) como separador inicial entre el prefijo y los dígitos hexadecimales, binarios u octales. Por ejemplo:
Dim number As Long = &H_0FAC_0326_1489_D68C
Para usar el carácter de subrayado como separador inicial, debe agregar el elemento siguiente al archivo del proyecto de Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Para más información, consulte Selección de la versión del lenguaje de Visual Basic.
Los literales numéricos también pueden incluir el carácter de tipo L
para denotar el tipo de datos Long
, como se muestra en el ejemplo siguiente.
Dim number = &H_0FAC_0326_1489_D68CL
sugerencias de programación
Consideraciones de interoperabilidad. Si interactúa con componentes no escritos para .NET Framework, por ejemplo, objetos de Automation o COM, recuerde que
Long
tiene un ancho de datos diferente (32 bits) en otros entornos. Si pasa un argumento de 32 bits a ese tipo de componente, declárelo comoInteger
en lugar deLong
en el código de Visual Basic nuevo.Ampliación. El tipo de datos
Long
se amplía aDecimal
,Single
oDouble
. Esto significa que puede convertir un tipo de datosLong
en cualquiera de estos tipos sin que se produzca un error System.OverflowException.Caracteres de tipo. Al agregar el carácter de tipo literal
L
a un literal, el tipo de datos se convierte forzosamente en el tipo de datosLong
. Si se agrega el carácter de tipo identificador&
a cualquier identificador, se convierte forzosamente al tipoLong
.Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.Int64.