Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Contiene interi senza segno a 64 bit (8 byte) compresi tra 0 e 18,446,744,073,709,551,615 (più di 1,84 volte 10 ^ 19).
Osservazioni:
Usare il tipo di dati ULong per contenere dati binari troppo grandi per UIntegero i valori interi senza segno più grandi possibili.
Il valore predefinito di ULong è 0.
Assegnazioni di valori letterali
È possibile dichiarare e inizializzare una variabile ULong assegnandole un valore letterale decimale, un valore letterale esadecimale, un valore letterale ottale o (a partire da Visual Basic 2017) un valore letterale binario. 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.
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.
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
Si utilizza 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. I valori letterali decimali non hanno prefissi.
A partire da Visual Basic 2017, è possibile anche usare il carattere underscore, _, come separatore di cifre per migliorare la leggibilità, come illustrato nell'esempio seguente.
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, è possibile anche usare il carattere underscore (_) come separatore iniziale tra il prefisso e le cifre esadecimali, binarie oppure ottali. Ad esempio:
Dim number As ULong = &H_F9AC_0326_1489_D68C
Per usare il carattere underscore come separatore iniziale, è necessario aggiungere l'elemento seguente al file di progetto Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Per altre informazioni, vedere Selezionare la versione del linguaggio visual Basic.
I valori letterali numerici possono includere anche il ULul o per indicare il tipo di dati ULong, come illustrato nell'esempio seguente.
Dim number = &H_00_00_0A_96_2F_AC_14_D7ul
Suggerimenti per la programmazione
Numeri negativi. Poiché
ULongè un tipo senza segno, non può rappresentare un numero negativo. Se si utilizza l'operatore meno unario (-) in un'espressione che restituisce il tipoULong, Visual Basic converte prima l'espressione inDecimal.Conformità a CLS. Il tipo di dati
ULongnon fa parte del Common Language Specification (CLS), pertanto il codice conforme a CLS non può utilizzare un componente che usa tale tipo di dati.Considerazioni sull'interoperabilità. Se si prevede l'interazione con componenti non scritti per .NET Framework, ad esempio oggetti COM o di Automazione, tenere presente che i tipi come
ulongin altri ambienti possono avere un'ampiezza dei dati diversa (32 bit). Se si passa un argomento a 32 bit a un componente di questo tipo, nel codice Visual Basic gestito è necessario eseguirne la dichiarazione comeUIntegeranziché comeULong.Ampliamento. Il tipo di dati
ULongpuò ampliarsi nel tipoDecimal,SingleeDouble. È pertanto possibile convertireULongin uno di questi tipi senza generare un errore System.OverflowException.Caratteri di tipo. Se si accodano i caratteri di tipo letterale
ULa un valore letterale, si forza la conversione di tale valore nel tipo di datiULong.ULongnon ha alcun carattere di tipo identificatore.Tipo di Framework. Il tipo corrispondente in .NET Framework è la struttura System.UInt64.