Tipo di dati integer (Visual Basic)Integer data type (Visual Basic)

Contiene valori integer con segno a 32 bit (4 byte) in un intervallo compreso tra -2.147.483.648 e 2.147.483.647.Holds signed 32-bit (4-byte) integers that range in value from -2,147,483,648 through 2,147,483,647.

NoteRemarks

Il tipo di dati Integer consente di ottenere prestazioni ottimali su processori a 32 bit.The Integer data type provides optimal performance on a 32-bit processor. Gli altri tipi integrali vengono caricati e memorizzati più lentamente.The other integral types are slower to load and store from and to memory.

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

Assegnazioni di valori letteraliLiteral assignments

È possibile dichiarare e inizializzare un Integer variabile da assegnarle 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 an Integer 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 Integer, vale a dire se è minore di Int32.MinValue o maggiore di Int32.MaxValue, si verifica un errore di compilazione.If the integer literal is outside the range of Integer (that is, if it is less than Int32.MinValue or greater than Int32.MaxValue, a compilation error occurs.

Nell'esempio seguente, i valori interi uguali a 90.946 rappresentati come valori letterali decimali, esadecimali o binari vengono assegnati a valori Integer.In the following example, integers equal to 90,946 that are represented as decimal, hexadecimal, and binary literals are assigned to Integer values.

Dim intValue1 As Integer = 90946
Console.WriteLine(intValue1)
Dim intValue2 As Integer = &H16342
Console.WriteLine(intValue2)

Dim intValue3 As Integer = &B0001_0110_0011_0100_0010
Console.WriteLine(intValue3)
' The example displays the following output:
'          90946
'          90946
'          90946

Nota

Il prefisso viene usato &h oppure &H per indicare un valore letterale esadecimale, il prefisso &b oppure &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 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 intValue1 As Integer = 90_946
Console.WriteLine(intValue1)

Dim intValue2 As Integer = &H0001_6342
Console.WriteLine(intValue2)

Dim intValue3 As Integer = &B0001_0110_0011_0100_0010
Console.WriteLine(intValue3)
' The example displays the following output:
'          90946
'          90946
'          90946

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 ottale.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 Integer = &H_C305_F860

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.

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

Dim number = &H_035826I

Suggerimenti sulla programmazioneProgramming tips

  • 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 Integer ha un'ampiezza dei dati diversa (16 bit) in altri ambienti.If you are interfacing with components not written for the .NET Framework, such as Automation or COM objects, remember that Integer has a different data width (16 bits) in other environments. Se si passa un argomento a 16 bit a un componente di questo tipo, nel nuovo codice Visual Basic è necessario eseguirne la dichiarazione come Short anziché come Integer.If you are passing a 16-bit argument to such a component, declare it as Short instead of Integer in your new Visual Basic code.

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

  • Caratteri tipo.Type Characters. Aggiungendo il carattere di tipo letterale I a un valore letterale, se ne determina la conversione nel tipo di dati Integer.Appending the literal type character I to a literal forces it to the Integer data type. Aggiungendo il carattere identificatore di tipo % a qualsiasi identificatore, se ne determina la conversione al tipo di dati Integer.Appending the identifier type character % to any identifier forces it to Integer.

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

IntervalloRange

Se si tenta di impostare una variabile di un tipo integrale su un numero esterno all'intervallo valido per tale tipo, verrà generato un errore.If you try to set a variable of an integral type to a number outside the range for that type, an error occurs. Se si tenta di impostarlo in una frazione, il numero viene arrotondato all'intero pari più vicino.If you try to set it to a fraction, the number is rounded up or down to the nearest integer value. Se il numero è egualmente vicino a due valori interi, il valore viene arrotondato all'intero pari più vicino.If the number is equally close to two integer values, the value is rounded to the nearest even integer. Questo comportamento riduce al minimo gli errori di arrotondamento risultanti dall'arrotondamento coerente di un valore del punto centrale in una singola direzione.This behavior minimizes rounding errors that result from consistently rounding a midpoint value in a single direction. Nel codice riportato di seguito vengono illustrati esempi di arrotondamento.The following code shows examples of rounding.

' The valid range of an Integer variable is -2147483648 through +2147483647.  
Dim k As Integer  
' The following statement causes an error because the value is too large.  
k = 2147483648  
' The following statement sets k to 6.  
k = 5.9  
' The following statement sets k to 4  
k = 4.5  
' The following statement sets k to 6  
' Note, Visual Basic uses banker’s rounding (toward nearest even number)  
k = 5.5  

Vedere ancheSee also