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 somShort
i stället förInteger
i din nya Visual Basic-kod.Breddning. Datatypen
Integer
utvidgas tillLong
,Decimal
,Single
ellerDouble
. Det innebär att du kan konverteraInteger
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 tillInteger
datatypen. Om du lägger till tecknet%
för identifierartyp till en identifierare tvingar det tillInteger
.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