SByte-Datentyp (Visual Basic)

Enthält ganze 8-Bit-Ganzzahlen mit Vorzeichen (1 Byte), die zwischen -128 und 127 liegen.

Bemerkungen

Verwenden Sie den SByte Datentyp , um ganzzahlige Werte zu enthalten, die nicht die vollständige Datenbreite von Integer oder sogar die halbe Datenbreite von Short erfordern. In einigen Fällen ist die Common Language Runtime möglicherweise in der Lage, Ihre Variablen eng zusammenzupacken und Speicherverbrauch zu SByte sparen.

Der Standardwert von SByte lautet 0.

Literalzuweisungen

Sie können eine Variable deklarieren und initialisieren, indem Sie SByte ihr ein Dezimalliteral, ein hexadezimales Literal, ein oktales Literal oder (ab Visual Basic 2017) ein binäres Literal zuweisen.

Im folgenden Beispiel werden Ganzzahlen gleich -102, die als Dezimal-, Hexadezimal- und binäre Literale dargestellt werden, SByte Werten zugewiesen. Für dieses Beispiel müssen Sie mit dem /removeintchecks Compilerschalter kompilieren.

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 &h oder , um ein &H hexadezimales Literal, das Präfix &b oder ein &B binäres Literal und das Präfix &o oder ein &O oktales Literal zu kennzeichnen. Dezimale Literale haben kein Präfix.

Ab Visual Basic 2017 können Sie auch den Unterstrich ( _ ) als Zifferntrennzeichen verwenden, um die Lesbarkeit zu verbessern, wie im folgenden Beispiel gezeigt.

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 den Unterstrich ( _ ) als führendes Trennzeichen zwischen dem Präfix und den hexadezimalen, binären oder oktalen Ziffern verwenden. Beispiel:

Dim number As SByte = &H_F9

Um den Unterstrich als vorangestelltes Trennzeichen verwenden zu können, müssen Sie Ihrer Visual Basic-Projektdatei (*.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 ganzzahliges Literal kein Suffix hat, wird eine ganze Zahl abgeleitet. Wenn sich das Ganzzahlliteral außerhalb des Bereichs des Integer Typs befindet, wird ein Long-Wert abgeleitet. Dies bedeutet, dass in den vorherigen Beispielen die numerischen Literale 0x9A und 0b10011010 als 32-Bit-Ganzzahlen mit Vorzeichen mit einem Wert von 156 interpretiert werden, der SByte.MaxValue überschreitet. Um Code wie diesen erfolgreich zu kompilieren, der einer eine nicht dezimale ganze Zahl SByte zuweist, können Sie eine der folgenden Schritte ausführen:

  • Deaktivieren Sie Überprüfungen ganzzahliger Begrenzungen, indem Sie mit dem /removeintchecks Compilerschalter kompilieren.

  • Verwenden Sie ein Typzeichen, um den Literalwert explizit zu definieren, den Sie dem zuweisen SByte möchten. Im folgenden Beispiel wird einem ein negativer Short Literalwert SByte zugewiesen. Beachten Sie, dass für negative Zahlen das obere Bit des Worts in hoher Reihenfolge des numerischen Literals festgelegt werden muss. Im Beispiel ist dies Bit 15 des Short Literalwerts.

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

Programmiertipps

  • CLS-Kompatibilität. Der SByte Datentyp ist nicht Teil der Common Language Specification (CLS), sodass CLS-kompatibler Code keine Komponente nutzen kann, die ihn verwendet.

  • Erweiterung. Der SByte Datentyp wird auf , , , , und Short Integer Long Decimal Single Double erweitert. Dies bedeutet, dass Sie in einen dieser Typen konvertieren können, SByte ohne dass ein Fehler System.OverflowException auftritt.

  • Geben Sie Zeichen ein. SByte weist kein Literaltypzeichen oder Bezeichnertypzeichen auf.

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

Siehe auch