SByte-Datentyp (Visual Basic)
Speichert 8-Bit-Ganzzahlen mit Vorzeichen (1 Byte), deren Werte sich im Bereich von -128 bis 127 bewegen.
Bemerkungen
Verwenden Sie den SByte
-Datentyp, um ganzzahlige Werte aufzunehmen, die nicht die vollständige Datenbreite von Integer
oder sogar die halbe Datenbreite von Short
erfordern. In einigen Fällen kann die Common Language Runtime Ihre SByte
-Variablen eng zusammenpacken und Arbeitsspeicher sparen.
Der Standardwert von SByte
lautet 0.
Literale Zuweisungen
Sie können eine SByte
-Variable deklarieren und initialisieren, indem Sie 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 dezimale, hexadezimale und binäre Literale dargestellt werden, den SByte
-Werten zugewiesen. In diesem Beispiel müssen Sie den /removeintchecks
-Compilerschalter für die Kompilierung verwenden.
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
Verwenden Sie das Präfix &h
oder &H
zum Kennzeichnen eines hexadezimalen Literals, das Präfix &b
oder &B
zum Kennzeichnen eines binären Literals und das Präfix &o
oder &O
zum Kennzeichnen eines oktalen Literals. Dezimale Literale haben kein Präfix.
Ab Visual Basic 2017 können Sie zur besseren Lesbarkeit auch den Unterstrich (_
) als Zifferntrennzeichen verwenden, wie im folgenden Beispiel veranschaulicht.
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 vorangestelltes Trennzeichen zwischen dem Präfix und en 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-Datei) 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 ein ganzzahliger Wert abgeleitet. Wenn sich das ganzzahlige Literal außerhalb des Bereichs des Typs Integer
befindet, wird ein Wert vom Typ Long abgeleitet. Dies bedeutet, dass im vorherigen Beispiel die numerischen Literale 0x9A
und 0b10011010
als ganze 32-Bit-Zahlen mit Vorzeichen mit einem Wert von 156 interpretiert werden, was SByte.MaxValue übersteigt. Um Code wie diesen erfolgreich zu kompilieren, der SByte
eine ganze Zahl (keine Dezimalzahl) zuweist, können Sie eine der folgenden Aktionen ausführen:
Deaktivieren Sie Überprüfungen auf Ganzzahlgrenzen, indem Sie den
/removeintchecks
-Compilerschalter für die Kompilierung verwenden.Verwenden Sie ein Typzeichen, um den Literalwert explizit zu definieren, den Sie
SByte
zuweisen möchten. Im folgenden Beispiel wirdSByte
ein negativerShort
-Literalwert zugewiesen. Beachten Sie, dass für negative Zahlen das höchstwertige Bit des höherwertigen Worts des numerischen Literals festgelegt werden muss. Im Fall unseres Beispiels ist dies Bit 15 des LiteralwertsShort
.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 zuShort
,Integer
,Long
,Decimal
,Single
undDouble
erweitert. Dies bedeutet, dass SieSByte
in einen dieser Typen konvertieren können, ohne dass ein System.OverflowException-Fehler auftritt.Typzeichen.
SByte
hat kein Literal-Typzeichen oder Bezeichner-Typzeichen.Framework-Typ. Der entsprechende Typ in .NET Framework ist die System.SByte-Struktur.