Tipo di dati Long (Visual Basic)
Contiene valori interi con segno a 64 bit (8 byte) compresi tra -9.223.372.036.854.775.808 e 9.223.372.036.854.775.807 (9,2...E+18).
Osservazioni:
Usare il tipo di dati Long
per contenere numeri interi troppo grandi per rientrare nel tipo di dati Integer
.
Il valore predefinito di Long
è 0.
Assegnazioni di valori letterali
È possibile dichiarare e inizializzare una variabile Long
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 Long
, vale a dire se è minore di Int64.MinValue o maggiore di Int64.MaxValue, si verifica un errore di compilazione.
Nell'esempio seguente, i valori interi uguali a 4.294.967.296 rappresentati come valori letterali decimali, esadecimali o binari vengono assegnati a valori 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
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 Long = &H_0FAC_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 carattere di tipo L
per indicare il tipo di dati Long
, come illustrato nell'esempio seguente.
Dim number = &H_0FAC_0326_1489_D68CL
Suggerimenti per la programmazione
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 in altri ambienti il tipo
Long
ha un'ampiezza dei dati diversa (32 bit). Se si passa un argomento a 32 bit a un componente di questo tipo, nel nuovo codice Visual Basic è necessario eseguirne la dichiarazione comeInteger
anziché comeLong
.Ampliamento. Il tipo di dati
Long
può ampliarsi nel tipoDecimal
,Single
oDouble
. È pertanto possibile convertireLong
in uno di questi tipi senza generare un errore System.OverflowException.Caratteri di tipo. Aggiungendo il carattere di tipo letterale
L
a un valore letterale, se ne determina la conversione nel tipo di datiLong
. Aggiungendo il carattere identificatore di tipo&
a qualsiasi identificatore, se ne determina la conversione al tipo di datiLong
.Tipo di framework. Il tipo corrispondente in .NET Framework è la struttura System.Int64.