SByte-datatyp (Visual Basic)
Innehåller signerade 8-bitars heltal (1 byte) som sträcker sig i värde från -128 till 127.
Kommentarer
SByte
Använd datatypen för att innehålla heltalsvärden som inte kräver den fullständiga databredden Integer
eller ens halva databredden för Short
. I vissa fall kan den vanliga språkkörningen kanske packa ihop variablerna SByte
noggrant och spara minnesförbrukning.
Standardvärdet SByte
för är 0.
Literaltilldelningar
Du kan deklarera och initiera en SByte
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.
I följande exempel tilldelas heltal som är lika med -102 som representeras som decimaler, hexadecimala och binära literaler till SByte
värden. Det här exemplet kräver att du kompilerar med /removeintchecks
kompilatorväxeln.
Dim sbyteValue1 As SByte = -102
Console.WriteLine(sbyteValue1)
Dim sbyteValue4 As SByte = &H9A
Console.WriteLine(sbyteValue4)
Dim sbyteValue5 As SByte = &B1001_1010
Console.WriteLine(sbyteValue5)
' The example displays the following output:
' -102
' -102
' -102
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 sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
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 SByte = &H_F9
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.
Om heltalsliteralen ligger utanför intervallet SByte
(dvs. om det är mindre än eller större än SByte.MinValue SByte.MaxValue, uppstår ett kompileringsfel. När en heltalsliteral inte har något suffix härleds ett heltal . Om heltalsliteralen ligger utanför intervallet för Integer
typen, härleds en Long . Det innebär att de numeriska literalerna i föregående exempel tolkas 0x9A
0b10011010
som 32-bitars signerade heltal med värdet 156, vilket överskrider SByte.MaxValue. Om du vill kompilera kod som den här som tilldelar ett heltal SByte
som inte är decimaltecken kan du göra något av följande:
Inaktivera heltalsgränskontroller genom att kompilera med
/removeintchecks
kompilatorväxeln.Använd ett typtecken för att explicit definiera det literalvärde som du vill tilldela till
SByte
. I följande exempel tilldelas ett negativt literalvärdeShort
till enSByte
. Observera att för negativa tal måste högordningsbiten i högordningsordet i den numeriska literalen anges. I vårt exempel är det här bit 15 av literalvärdetShort
.Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
Programmeringstips
CLS-efterlevnad. Datatypen
SByte
är inte en del av CLS (Common Language Specification ), så CLS-kompatibel kod kan inte använda en komponent som använder den.Breddning. Datatypen
SByte
breddas tillShort
,Integer
,Long
,Decimal
,Single
ochDouble
. Det innebär att du kan konverteraSByte
till någon av dessa typer utan att det uppstår något System.OverflowException fel.Skriv tecken.
SByte
har inget tecken av typen literal eller identifierartyp.Ramverkstyp. Motsvarande typ i .NET Framework är System.SByte strukturen.