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 Lcarácter de tipo 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 como Integer en lugar de Long en el código de Visual Basic nuevo.

  • Ampliación. El tipo de datos Long se amplía a Decimal, Single o Double. Esto significa que puede convertir un tipo de datos Long 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 datos Long. Si se agrega el carácter de tipo identificador & a cualquier identificador, se convierte forzosamente al tipo Long.

  • Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.Int64.

Consulte también