SByte-Datentyp (Visual Basic)

Enthält signierte 8-Bit-Ganzzahlen (1-Byte), die im Wert von -128 bis 127 liegen.

Bemerkungen

Verwenden Sie den SByte Datentyp, um ganze Werte zu enthalten, die keine vollständige Datenbreite oder Integer sogar die halbe Datenbreite Shorterfordern. In einigen Fällen kann die gemeinsame Sprachlaufzeit Ihre SByte Variablen eng zusammen packen und den Speicherverbrauch speichern.

Der Standardwert von SByte lautet 0.

Literale Zuordnungen

Sie können eine SByte Variable deklarieren und initialisieren, indem Sie es einem Dezimal literal, einem hexadezimalen Literal, einem oktalen Literal oder (beginnend mit Visual Basic 2017) einem binären Literal zuweisen.

Im folgenden Beispiel werden ganze Zahlen gleich -102, die als Dezimal-, Hexadezimal- und binäre Literale dargestellt werden, Werten zugewiesen SByte . In diesem Beispiel wird erforderlich, dass Sie mit dem /removeintchecks Compilerschalter kompiliert werden.

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

Hinweis

Sie verwenden das Präfix oder &H zum Kennzeichnen eines Hexadezimal literal, des Präfixes &h&b oder zum Kennzeichnen eines binären Literals und &o des Präfixes oder &B&O zum Kennzeichnen eines Oktal literal. Dezimale Literale haben kein Präfix.

Ab Visual Basic 2017 können Sie auch das Unterstrichzeichen verwenden, als Zifferntrennzeichen, um die Lesbarkeit zu verbessern, _wie das folgende Beispiel zeigt.

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

Ab Visual Basic 15.5 können Sie auch das Unterstrichzeichen (_) als führendes Trennzeichen zwischen präfix und hexadezimalen, binären oder oktalen Ziffern verwenden. Beispiel:

Dim number As SByte = &H_F9

Um das Unterstrichzeichen als führendes Trennzeichen zu verwenden, müssen Sie dem Visual Basic Projekt (*.vbproj) das folgende Element hinzufügen:

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

Weitere Informationen finden Sie unter Auswählen der Visual Basic Sprachversion.

Wenn Sich das Ganzzahlliteral außerhalb des Bereichs von SByte befindet – sprich, wenn es kleiner als SByte.MinValue oder größer als SByte.MaxValue ist – tritt ein Kompilierfehler auf. Wenn ein ganzzahliger Literal kein Suffix aufweist, wird eine Ganze Zahl abgeleitet. Wenn sich der ganze Literal außerhalb des Integer Typbereichs befindet, wird ein Long abgeleitet. Dies bedeutet, dass in den vorherigen Beispielen die numerischen Literale 0x9A und 0b10011010 als 32-Bit-ganzzahlige Zahlen mit einem Wert von 156 interpretiert werden, der überschreitet SByte.MaxValue. Zum erfolgreichen Kompilieren von Code wie dieser, der eine nicht dezimale Ganze Zahl zu einem SBytezuweisen, können Sie eine der folgenden Aktionen ausführen:

  • Deaktivieren Sie ganzzahlige Begrenzungen, indem Sie mit dem /removeintchecks Compilerschalter kompilieren.

  • Verwenden Sie ein Typzeichen, um den Literalwert explizit zu definieren, den Sie dem SBytezuweisen möchten. Im folgenden Beispiel wird ein negativer Literalwert Short einem SByteWert zugewiesen. Beachten Sie, dass für negative Zahlen das Hochreihenfolgenwort des numerischen Literals festgelegt werden muss. Im Fall unseres Beispiels ist dies Bit 15 des Literalwerts Short .

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

Programmiertipps

  • CLS Compliance. Der SByte Datentyp ist nicht Teil der Common Language Specification (CLS), sodass CLS-kompatibler Code keine Komponente verwendet, die sie verwendet.

  • Erweiterung. Der SByte Datentyp erweitert sich auf Short, , DecimalSingleIntegerLongund .Double Dies bedeutet, dass Sie in jede dieser Typen konvertieren SByte können, ohne dass ein System.OverflowException Fehler auftritt.

  • Typzeichen. SByte hat kein Literaltypzeichen oder Bezeichnertypzeichen.

  • Framework-Typ. Der entsprechende Typ in .NET Framework ist die System.SByte-Struktur.

Weitere Informationen