Tipo de datos ULong (Visual Basic)

Contiene enteros de 64 bits (8 bytes) sin signo que oscilan entre 0 y 18 446 744 073 709 551 615 (más de 1,84 veces 10 ^ 19).

Comentarios

Use el tipo de datos para contener datos binarios demasiado grandes para o los valores enteros sin signo más grandes ULong UInteger posibles.

El valor predeterminado de ULong es 0.

Asignaciones literales

Puede declarar e inicializar una variable asignándose un literal decimal, un literal hexadecimal, un literal octal o (a partir ULong de Visual Basic 2017) un literal binario. Si el literal entero está fuera del intervalo de ULong (es decir, si es inferior a UInt64.MinValue o mayor que UInt64.MaxValue, se produce un error de compilación.

En el ejemplo siguiente, los enteros que equivalen a 7 934 076 125 que se representan como literales binarios, hexadecimales y decimales se asignan a valores ULong.

Dim ulongValue1 As ULong = 7934076125
Console.WriteLine(ulongValue1)

Dim ulongValue2 As ULong = &H0001D8e864DD
Console.WriteLine(ulongValue2)

Dim ulongValue3 As ULong = &B0001_1101_1000_1110_1000_0110_0100_1101_1101
Console.WriteLine(ulongValue3)
' The example displays the following output:
'          7934076125
'          7934076125
'          7934076125

Nota

Use el prefijo o para denotar un literal hexadecimal, el prefijo o para denotar un literal binario, y el prefijo o para &h &H denotar un literal &b &B &o &O octal. Los literales decimales no tienen prefijo.

A partir Visual Basic 2017, también puede usar el carácter de subrayado , , como separador de dígitos para mejorar la legibilidad, 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 Visual Basic 15.5, también puede usar el carácter de subrayado ( ) como separador inicial entre el prefijo y los dígitos hexadecimal, binario o _ octal. Por ejemplo:

Dim number As ULong = &H_F9AC_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 obtener más información, vea Select the Visual Basic language version (Seleccionar Visual Basic versión de idioma).

Los literales numéricos también pueden incluir el carácter de tipo o para indicar el tipo de datos, como se muestra UL en el ejemplo ul ULong siguiente.

Dim number = &H_00_00_0A_96_2F_AC_14_D7ul

sugerencias de programación

  • Números negativos. Dado ULong que es un tipo sin signo, no puede representar un número negativo. Si usa el operador unario menos ( ) en una expresión que se evalúa como de tipo , Visual Basic convierte - la expresión en primer ULong Decimal lugar.

  • Conformidad con CLS. El tipo de datos no forma parte del Common Language Specification (CLS), por lo que el código conforme a CLS no ULong puede consumir un componente que lo use.

  • Consideraciones de interoperabilidad. Si está interfacing con componentes que no están escritos para el .NET Framework, por ejemplo, automation u objetos COM, tenga en cuenta que tipos como pueden tener un ancho de datos ulong diferente (32 bits) en otros entornos. Si va a pasar un argumento de 32 bits a este tipo de componente, declare como en lugar de en el código de Visual Basic UInteger ULong administrado.

  • Ampliación. El ULong tipo de datos se amplía a , y Decimal Single Double . Esto significa que puede convertir ULong a cualquiera de estos tipos sin encontrar un System.OverflowException error.

  • Caracteres de tipo. Anexar los caracteres de tipo literal UL a un literal lo fuerza al tipo de ULong datos. ULong no tiene ningún carácter de tipo identificador.

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

Consulta también