Delen via


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 Shortvereist. 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 SBytegeheel 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 SBytewaarde wilt toewijzen. In het volgende voorbeeld wordt een negatieve letterlijke Short waarde toegewezen aan een SByte. 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 letterlijke Short 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 naar Short, Integer, Long, , Decimalen Single.Double Dit betekent dat u kunt converteren SByte 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.

Zie ook