SByte-gegevenstype (Visual Basic)
Bevat ondertekende gehele getallen van 8-bits (1-byte) die variëren van -128 tot en met 127.
Opmerkingen
Gebruik het SByte
gegevenstype om gehele getallen te bevatten waarvoor geen volledige gegevensbreedte of Integer
zelfs de halve gegevensbreedte is Short
vereist. In sommige gevallen kan de algemene taalruntime uw SByte
variabelen mogelijk nauw inpakken en geheugenverbruik besparen.
De standaardwaarde is SByte
0.
Letterlijke toewijzingen
U kunt een SByte
variabele declareren en initialiseren door deze toe te wijzen aan een letterlijke waarde voor decimalen, een hexadecimale letterlijke waarde, een octale letterlijke waarde of (te beginnen met Visual Basic 2017).
In het volgende voorbeeld worden gehele getallen die gelijk zijn aan -102 die worden weergegeven als decimale, hexadecimale en binaire letterlijke waarden toegewezen aan SByte
waarden. Voor dit voorbeeld moet u compileren met de /removeintchecks
compilerswitch.
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
Notitie
U gebruikt het voorvoegsel &h
of &H
om een hexadecimale letterlijke waarde, het voorvoegsel of &B
om een binaire letterlijke waarde aan te geven, en het voorvoegsel &b
&o
of &O
om een octale letterlijke waarde aan te geven. Letterlijke decimalen hebben geen voorvoegsel.
Vanaf Visual Basic 2017 kunt u ook het onderstrepingsteken gebruiken, _
als scheidingsteken voor cijfers om de leesbaarheid te verbeteren, zoals in het volgende voorbeeld wordt weergegeven.
Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
Vanaf Visual Basic 15.5 kunt u het onderstrepingsteken (_
) ook gebruiken als voorloopscheidingsteken tussen het voorvoegsel en de hexadecimale, binaire of octale cijfers. Voorbeeld:
Dim number As SByte = &H_F9
Als u het onderstrepingsteken wilt gebruiken als scheidingsteken voor voorloop, moet u het volgende element toevoegen aan het Visual Basic-project (*.vbproj)-bestand:
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Zie De visual Basic-taalversie selecteren voor meer informatie.
Als de letterlijke waarde van het gehele getal buiten het bereik valt SByte
(dat wil gezegd, als het kleiner is dan SByte.MinValue of groter is dan SByte.MaxValue, treedt er een compilatiefout op. Wanneer een letterlijk geheel getal geen achtervoegsel heeft, wordt een geheel getal afgeleid. Als de letterlijke waarde van het gehele getal buiten het bereik van het Integer
type valt, wordt een long afgeleid. Dit betekent dat in de vorige voorbeelden de numerieke letterlijke waarden 0x9A
worden geïnterpreteerd als 0b10011010
32-bits ondertekende gehele getallen met een waarde van 156, die groter is SByte.MaxValuedan . Als u code zoals deze wilt compileren die een niet-decimaal geheel getal aan een SByte
geheel getal toewijst, kunt u een van de volgende handelingen uitvoeren:
Schakel controles voor gehele getallen uit door te compileren met de
/removeintchecks
compilerswitch.Gebruik een typeteken om expliciet de letterlijke waarde te definiëren die u aan de
SByte
waarde wilt toewijzen. In het volgende voorbeeld wordt een negatieve letterlijkeShort
waarde toegewezen aan eenSByte
. Houd er rekening mee dat voor negatieve getallen de hoge volgorde van het woord in hoge volgorde van de numerieke letterlijke waarde moet worden ingesteld. In het geval van ons voorbeeld is dit bit 15 van de letterlijkeShort
waarde.Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
Programmeertips
CLS-naleving. Het
SByte
gegevenstype maakt geen deel uit van de Common Language Specification (CLS), dus cls-compatibele code kan geen onderdeel verbruiken dat het gebruikt.Verbreding. Het
SByte
gegevenstype wordt uitgebreid naarShort
,Integer
,Long
, ,Decimal
enSingle
.Double
Dit betekent dat u kunt converterenSByte
naar een van deze typen zonder dat er een System.OverflowException fout optreedt.Typ tekens.
SByte
heeft geen letterlijk type teken of id-type teken.Type framework. Het bijbehorende type in .NET Framework is de System.SByte structuur.