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

Include 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).Holds signed 64-bit (8-byte) integers ranging in value from -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18).

OsservazioniRemarks

Utilizzare il tipo di dati Long per contenere numeri interi troppo grandi per il tipo di dati Integer.Use the Long data type to contain integer numbers that are too large to fit in the Integer data type.

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

Assegnazioni di valori letteraliLiteral assignments

È possibile dichiarare e inizializzare una variabile di Long assegnando un valore letterale decimale, un valore letterale esadecimale, un valore letterale ottale o (a partire da Visual Basic 2017) un valore letterale binario.You can declare and initialize a Long 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 Long, vale a dire se è minore di Int64.MinValue o maggiore di Int64.MaxValue, si verifica un errore di compilazione.If the integer literal is outside the range of Long (that is, if it is less than Int64.MinValue or greater than Int64.MaxValue, a compilation error occurs.

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.In the following example, integers equal to 4,294,967,296 that are represented as decimal, hexadecimal, and binary literals are assigned to Long values.

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

Usare 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, è anche possibile usare il carattere di sottolineatura, _, come separatore di cifre per migliorare la leggibilità, come illustrato nell'esempio seguente.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, è anche possibile usare il carattere di sottolineatura (_) come separatore iniziale tra il prefisso e le cifre esadecimali, binarie o ottali.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. Di seguito è riportato un esempio:For example:

Dim number As Long = &H_0FAC_0326_1489_D68C

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

Per altre informazioni, vedere impostando la versione del linguaggio Visual Basic.For more information see setting the Visual Basic language version.

I valori letterali numerici possono includere anche il carattere del tipo di L per indicare il tipo di dati Long, come illustrato nell'esempio riportato di seguito.Numeric literals can also include the L type character to denote the Long data type, as the following example shows.

Dim number = &H_0FAC_0326_1489_D68CL

Suggerimenti per la programmazioneProgramming tips

  • Considerazioni sull'interoperabilità.Interop Considerations. Se si è connessi con componenti non scritti per il .NET Framework, ad esempio oggetti COM o di automazione, tenere presente che Long ha una larghezza 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, remember that Long has a different data width (32 bits) in other environments. Se si passa un argomento a 32 bit a tale componente, dichiararlo come Integer anziché Long nel nuovo codice di Visual Basic.If you are passing a 32-bit argument to such a component, declare it as Integer instead of Long in your new Visual Basic code.

  • Conversioni.Widening. Il tipo di dati Long viene ampliato in Decimal, Singleo Double.The Long data type widens to Decimal, Single, or Double. È pertanto possibile convertire Long in uno di questi tipi senza generare un errore System.OverflowException.This means you can convert Long to any one of these types without encountering a System.OverflowException error.

  • Digitare i caratteri.Type Characters. Aggiungendo il carattere di tipo letterale L a un valore letterale, se ne determina la conversione nel tipo di dati Long.Appending the literal type character L to a literal forces it to the Long data type. Aggiungendo il carattere identificatore di tipo & a qualsiasi identificatore, se ne determina la conversione al tipo di dati Long.Appending the identifier type character & to any identifier forces it to Long.

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

Vedere ancheSee also