Dela via


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.MinValueSByte.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 0x9A0b10011010 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 SBytesom 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ärde Short till en SByte. 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ärdet Short .

    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 till Short, Integer, Long, Decimal, Singleoch Double. Det innebär att du kan konvertera SByte 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.

Se även