Condividi tramite


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 come Integer anziché come Long.

  • Ampliamento. Il tipo di dati Long può ampliarsi nel tipo Decimal, Single o Double. È pertanto possibile convertire Long 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 dati Long. Aggiungendo il carattere identificatore di tipo & a qualsiasi identificatore, se ne determina la conversione al tipo di dati Long.

  • Tipo di framework. Il tipo corrispondente in .NET Framework è la struttura System.Int64.

Vedi anche