SByte-adattípus (Visual Basic)

A -128 és 127 közötti értéktartományú aláírt 8 bites (1 bájtos) egész számokat tárolja.

Megjegyzések

SByte Az adattípussal olyan egész számértékeket tartalmazhat, amelyekhez nem szükséges a teljes adatszélesség, vagy akár a fél adatszélesség Integer semShort. Bizonyos esetekben a közös nyelvi futtatókörnyezet képes lehet szorosan összecsomagolni a változókat, és menteni a SByte memóriahasználatot.

Az alapértelmezett érték SByte 0.

Konstans hozzárendelések

A SByte változók deklarálhatók és inicializálhatók úgy, hogy decimális literált, hexadecimális literált, oktális literált vagy (a Visual Basic 2017-től kezdődően) bináris literált rendelnek hozzá.

Az alábbi példában a -102-nek felel meg az egész szám, amely decimális, hexadecimális és bináris literálként van megadva az értékekhez SByte . Ebben a példában a fordítókapcsolóval kell fordítást /removeintchecks készíteni.

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

Feljegyzés

Az előtagot &h vagy &H egy hexadecimális literált, az előtagot &b vagy &B egy bináris literál jelölését, valamint az előtagot &o vagy &O egy oktális literál jelölését használhatja. A tizedes literálok nem rendelkeznek előtaggal.

A Visual Basic 2017-től kezdve az aláhúzásjelet is használhatja számjegyelválasztóként _az olvashatóság javítása érdekében, ahogy az alábbi példa is mutatja.

Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
'          -102

A Visual Basic 15.5-től kezdve az aláhúzásjelet (_) is használhatja vezető elválasztóként az előtag és a hexadecimális, bináris vagy oktális számjegyek között. Példa:

Dim number As SByte = &H_F9

Ha az aláhúzásjelet vezető elválasztóként szeretné használni, a következő elemet kell hozzáadnia a Visual Basic-projektfájlhoz (*.vbproj):

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

További információ: A Visual Basic nyelvi verziójának kiválasztása.

Ha az egész szám konstansa kívül esik a tartományon SByte (vagyis kisebb vagy nagyobb, mint SByte.MinValueSByte.MaxValue), fordítási hiba lép fel. Ha egy egész szám konstansának nincs utótagja, a függvény egy egész számot is kikövetkeztet. Ha az egész szám literálja kívül esik a Integer típus tartományán, a hosszú érték lesz kikövetkeztetve. Ez azt jelenti, hogy az előző példákban a numerikus literálok 0x9A0b10011010 32 bites aláírt egész számokként vannak értelmezve, amelyek értéke 156, ami meghaladja SByte.MaxValuea . A nem decimális egész számokat SByteegyhez rendelő kód sikeres fordításához tegye az alábbiak egyikét:

  • Az egész számhatárok ellenőrzésének letiltása a /removeintchecks fordítókapcsolóval való összeállítással.

  • Használjon típuskarakte-karaktert a hozzá rendelni kívánt literális érték explicit definiálásáhozSByte. Az alábbi példa negatív literálértéket Short rendel hozzá egy SByte. Ne feledje, hogy negatív számok esetén a számkonstans magasrendű szójának nagyrendű bitét kell beállítani. A példánk esetében ez a literális Short érték 15 bitese.

    Dim sByteValue1 As SByte = &HFF_9As
    Dim sByteValue2 As SByte = &B1111_1111_1001_1010s
    Console.WriteLine(sByteValue1)
    Console.WriteLine(sByteValue2)
    

Programozási tippek

  • CLS-megfelelőség. Az SByte adattípus nem része a Common Language Specification (CLS)-nek, ezért a CLS-kompatibilis kód nem tud olyan összetevőt használni, amely azt használja.

  • Szélesedő. Az SByte adattípus a következőre szélesedik Short: , Integer, Long, Decimal, Singleés Double. Ez azt jelenti, hogy bármilyen ilyen típusra konvertálhat SByte anélkül, hogy hiba merült fel System.OverflowException .

  • Írja be a karaktereket. SByte nem rendelkezik literális típuskaraktere vagy azonosítótípus-karaktere.

  • Keretrendszer típusa. A .NET-keretrendszer megfelelő típusa a System.SByte struktúra.

Lásd még