Tipo de datos Long (Visual Basic)Long data type (Visual Basic)

Incluye números enteros de 64 bits (8 bytes) que van de -9.223.372.036.854.775.808 y 9.223.372.036.854.775.807 (9.2 … E + 18).Holds signed 64-bit (8-byte) integers ranging in value from -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18).

ComentariosRemarks

Use la Long tipo de datos para que contenga números enteros que son demasiado grandes para caber la Integer tipo de datos.Use the Long data type to contain integer numbers that are too large to fit in the Integer data type.

El valor predeterminado de Long es 0.The default value of Long is 0.

Asignaciones de literalesLiteral assignments

Puede declarar e inicializar un Long variable mediante la asignación de un literal decimal, un literal hexadecimal, un literal octal, o (a partir de 2017 Visual Basic) un literal binario.You can declare and initialize a Long variable by assigning it a decimal literal, a hexadecimal literal, an octal literal, or (starting with Visual Basic 2017) a binary literal. 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.If the integer literal is outside the range of Long (that is, if it is less than Int64.MinValue or greater than Int64.MaxValue, a compilation error occurs.

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.In the following example, integers equal to 4,294,967,296 that are represented as decimal, hexadecimal, and binary literals are assigned to Long values.

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.You use the prefix &h or &H to denote a hexadecimal literal, the prefix &b or &B to denote a binary literal, and the prefix &o or &O to denote an octal literal. Los literales decimales no tienen prefijo.Decimal literals have no prefix.

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, como en el ejemplo siguiente se muestra.Starting with Visual Basic 2017, you can also use the underscore character, _, as a digit separator to enhance readability, as the following example shows.

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.Starting with Visual Basic 15.5, you can also use the underscore character (_) as a leading separator between the prefix and the hexadecimal, binary, or octal digits. Por ejemplo:For example:

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):To use the underscore character as a leading separator, you must add the following element to your Visual Basic project (*.vbproj) file:

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

Para obtener más información, consulte configuración de la versión de idioma de Visual Basic.For more information see setting the Visual Basic language version.

También pueden incluir literales numéricos el L carácter de tipo para denotar el Long tipo de datos, como se muestra en el ejemplo siguiente.Numeric literals can also include the L type character to denote the Long data type, as the following example shows.

Dim number = &H_0FAC_0326_1489_D68CL

Sugerencias de programaciónProgramming tips

  • Consideraciones de interoperabilidad.Interop Considerations. Si interactúa con componentes no escritos para .NET Framework, por ejemplo objetos de automatización o COM, recuerde que Long tiene un ancho de datos diferente (32 bits) en otros entornos.If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, remember that Long has a different data width (32 bits) in other environments. Si se pasa un argumento de 32 bits a esos componentes, declárelo como Integer en lugar de Long en el nuevo código de Visual Basic.If you are passing a 32-bit argument to such a component, declare it as Integer instead of Long in your new Visual Basic code.

  • Ampliación.Widening. El Long tipo de datos se amplía a Decimal, Single, o Double.The Long data type widens to Decimal, Single, or Double. Esto significa que puede convertir un tipo de datos Long en cualquiera de estos tipos sin que se produzca un error System.OverflowException.This means you can convert Long to any one of these types without encountering a System.OverflowException error.

  • Caracteres de tipo.Type Characters. 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.Appending the literal type character L to a literal forces it to the Long data type. Si se agrega el carácter de tipo identificador & a cualquier identificador, se convierte forzosamente al tipo Long.Appending the identifier type character & to any identifier forces it to Long.

  • Tipo de marco de trabajo.Framework Type. El tipo correspondiente en .NET Framework es la estructura System.Int64.The corresponding type in the .NET Framework is the System.Int64 structure.

Vea tambiénSee also