Dela via


Heltalsdatatyp (Visual Basic)

Innehåller signerade 32-bitars heltal (4 byte) som sträcker sig i värde från -2 147 483 648 till 2 147 483 647.

Kommentarer

Datatypen Integer ger optimala prestanda för en 32-bitars processor. De andra integraltyperna är långsammare att läsa in och lagra från och till minnet.

Standardvärdet Integer för är 0.

Literaltilldelningar

Du kan deklarera och initiera en Integer variabel genom att tilldela den en decimalliteral, en hexadecimal literal, en oktal literal eller (från och med Visual Basic 2017) en binär literal. Om heltalsliteralen ligger utanför intervallet Integer (dvs. om det är mindre än eller större än Int32.MinValue Int32.MaxValue, uppstår ett kompileringsfel.

I följande exempel tilldelas heltal som är lika med 90 946 som representeras som decimaler, hexadecimala och binära literaler till Integer värden.

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

Kommentar

Du använder prefixet &h eller &H för att ange en hexadecimal literal, prefixet &b eller &B för att ange en binär literal och prefixet &o eller &O för att ange en oktal literal. Decimalliteraler har inget prefix.

Från och med Visual Basic 2017 kan du också använda understreckstecknet, , _som en sifferavgränsare för att förbättra läsbarheten, vilket visas i följande exempel.

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

Från och med Visual Basic 15.5 kan du också använda understreckstecknet (_) som en inledande avgränsare mellan prefixet och hexadecimala, binära eller oktala siffror. Till exempel:

Dim number As Integer = &H_C305_F860

Om du vill använda understreckstecknet som en inledande avgränsare måste du lägga till följande element i visual basic-projektfilen (*.vbproj):

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

Mer information finns i Välj språkversion för Visual Basic.

Numeriska literaler kan också innehålla I typtecknet för att ange Integer datatypen, vilket visas i följande exempel.

Dim number = &H_035826I

Programmeringstips

  • Interop-överväganden. Om du interagerar med komponenter som inte är skrivna för .NET Framework, till exempel Automation- eller COM-objekt, ska du komma ihåg att det Integer har en annan databredd (16 bitar) i andra miljöer. Om du skickar ett 16-bitarsargument till en sådan komponent deklarerar du det som Short i stället för Integer i din nya Visual Basic-kod.

  • Breddning. Datatypen Integer utvidgas till Long, Decimal, Singleeller Double. Det innebär att du kan konvertera Integer till någon av dessa typer utan att det uppstår något System.OverflowException fel.

  • Skriv tecken. Om du lägger till teckentypen I literal till en literal tvingar det till Integer datatypen. Om du lägger till tecknet % för identifierartyp till en identifierare tvingar det till Integer.

  • Ramverkstyp. Motsvarande typ i .NET Framework är System.Int32 strukturen.

Intervall

Om du försöker ange en variabel av en integraltyp till ett tal utanför intervallet för den typen uppstår ett fel. Om du försöker ange ett bråk avrundas talet uppåt eller nedåt till närmaste heltalsvärde. Om talet är lika nära två heltalsvärden avrundas värdet till närmaste jämna heltal. Det här beteendet minimerar avrundningsfel som uppstår vid konsekvent avrundning av ett mittpunktsvärde i en enda riktning. Följande kod visar exempel på avrundning.

' 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  

Se även