Tipo di dati ULong (Visual Basic)ULong data type (Visual Basic)

Contiene interi senza segno a 64 bit (8 byte) compresi nell'intervallo da 0 a 18.446.744.073.709.551.615 (oltre 1,84 volte 10 ^ 19).Holds unsigned 64-bit (8-byte) integers ranging in value from 0 through 18,446,744,073,709,551,615 (more than 1.84 times 10 ^ 19).

NoteRemarks

Utilizzare il ULong il tipo di dati per contenere dati binari troppo grandi per UInteger, o il massimo valori unsigned integer.Use the ULong data type to contain binary data too large for UInteger, or the largest possible unsigned integer values.

Il valore predefinito di ULong è 0.The default value of ULong is 0.

Assegnazioni di valori letteraliLiteral assignments

È possibile dichiarare e inizializzare un ULong variabile assegnando il valore letterale decimale, valore letterale esadecimale, un valore letterale ottale, o (a partire da Visual Basic 2017) un valore letterale binario.You can declare and initialize a ULong variable by assigning it a decimal literal, a hexadecimal literal, an octal literal, or (starting with Visual Basic 2017) a binary literal. Se il valore letterale integer è esterno all'intervallo di ULong, vale a dire se è minore di UInt64.MinValue o maggiore di UInt64.MaxValue, si verifica un errore di compilazione.If the integer literal is outside the range of ULong (that is, if it is less than UInt64.MinValue or greater than UInt64.MaxValue, a compilation error occurs.

Nell'esempio seguente, i valori interi uguali a 7.934.076.125 rappresentati come valori letterali decimali, esadecimali o binari vengono assegnati a valori ULong.In the following example, integers equal to 7,934,076,125 that are represented as decimal, hexadecimal, and binary literals are assigned to ULong values.

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

Utilizzare il prefisso &h o &H per indicare un valore letterale esadecimale, il prefisso &b o &B per indicare un valore letterale binario e il prefisso &o o &O per indicare un valore letterale ottale.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. I valori letterali decimali non hanno prefissi.Decimal literals have no prefix.

A partire da Visual Basic 2017, è inoltre possibile utilizzare il carattere di sottolineatura, _, come un separatore di cifre per migliorare la leggibilità, come nell'esempio seguente viene illustrato.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 partire da Visual Basic 15,5, è inoltre possibile utilizzare il carattere di sottolineatura (_) come separatore iniziale tra il prefisso e le cifre binarie, ottale o esadecimale.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. Ad esempio:For example:

Dim number As ULong = &H_F9AC_0326_1489_D68C

Per utilizzare il carattere di sottolineatura come separatore iniziale, è necessario aggiungere l'elemento seguente al progetto Visual Basic (*. vbproj) file: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>

Valori letterali numerici possono includere anche il UL o ul carattere tipo per indicare il ULong il tipo di dati, come illustrato nell'esempio seguente.Numeric literals can also include the UL or ul type character to denote the ULong data type, as the following example shows.

Dim number = &H_00_00_0A_96_2F_AC_14_D7ul

Suggerimenti sulla programmazioneProgramming tips

  • Numeri negativi.Negative Numbers. Poiché ULong è un tipo unsigned, non può rappresentare un numero negativo.Because ULong is an unsigned type, it cannot represent a negative number. Se si utilizza l'operatore meno unario (-) gli operatori di un'espressione che restituisce al tipo ULong, Visual Basic converte l'espressione Decimal prima.If you use the unary minus (-) operator on an expression that evaluates to type ULong, Visual Basic converts the expression to Decimal first.

  • Conformità a CLS.CLS Compliance. Il ULong tipo di dati non è in parte il Common Language Specification (CLS), pertanto codice conforme a CLS non può utilizzare un componente che utilizza tale.The ULong data type is not part of the Common Language Specification (CLS), so CLS-compliant code cannot consume a component that uses it.

  • Considerazioni sull'interoperabilità.Interop Considerations. Se si prevede l'interazione con componenti non scritti per .NET Framework, ad esempio oggetti COM o di automazione, tenere presente che i tipi, ad esempio ulong può avere un'ampiezza dei dati diversa (32 bit) in altri ambienti.If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, keep in mind that types such as ulong can have a different data width (32 bits) in other environments. Se si passa un argomento a 32 bit a tale componente, dichiararla come UInteger anziché ULong nel codice gestito di Visual Basic.If you are passing a 32-bit argument to such a component, declare it as UInteger instead of ULong in your managed Visual Basic code.

    Inoltre, automazione non supporta valori integer a 64 bit in Windows 95, Windows 98, Windows ME o Windows 2000.Furthermore, Automation does not support 64-bit integers on Windows 95, Windows 98, Windows ME, or Windows 2000. Non è possibile passare un Visual Basic ULong argomento a un componente di automazione su queste piattaforme.You cannot pass a Visual Basic ULong argument to an Automation component on these platforms.

  • Ampliamento.Widening. Il ULong può ampliarsi nel tipo di dati Decimal, Single, e Double.The ULong data type widens to Decimal, Single, and Double. È pertanto possibile convertire ULong a uno di questi tipi senza generare un System.OverflowException errore.This means you can convert ULong to any of these types without encountering a System.OverflowException error.

  • Caratteri tipo.Type Characters. Aggiungendo i caratteri di tipo letterale UL a un valore letterale indica al sistema di ULong tipo di dati.Appending the literal type characters UL to a literal forces it to the ULong data type. ULong non include alcun carattere di tipo identificatore.ULong has no identifier type character.

  • Tipo di Framework.Framework Type. Il tipo corrispondente in .NET Framework è la struttura System.UInt64.The corresponding type in the .NET Framework is the System.UInt64 structure.

Vedere ancheSee also

UInt64
Tipi di datiData Types
Funzioni di conversione del tipoType Conversion Functions
Riepilogo della conversioneConversion Summary
Procedura: Chiamare una funzione Windows che accetta tipi senza segnoHow to: Call a Windows Function that Takes Unsigned Types
Uso efficiente dei tipi di datiEfficient Use of Data Types