Typ danych SByte (Visual Basic)
Zawiera podpisane 8-bitowe (1-bajtowe) liczby całkowite, które wahają się w wartości od -128 do 127.
Uwagi
SByte
Użyj typu danych, aby zawierać wartości całkowite, które nie wymagają pełnej szerokości Integer
danych lub nawet połowy szerokości Short
danych . W niektórych przypadkach środowisko uruchomieniowe języka wspólnego może być w stanie ściśle spakować SByte
zmienne i zaoszczędzić zużycie pamięci.
Wartość domyślna to SByte
0.
Przypisania literału
Zmienną SByte
można zadeklarować i zainicjować, przypisując jej literał dziesiętny, literał szesnastkowy, literał ósemkowy lub (począwszy od języka Visual Basic 2017) literał binarny.
W poniższym przykładzie liczby całkowite równe -102, które są reprezentowane jako dziesiętne, szesnastkowe i literały binarne są przypisywane do SByte
wartości. Ten przykład wymaga skompilowania za pomocą przełącznika kompilatora /removeintchecks
.
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
Uwaga
Należy użyć prefiksu &h
lub &H
oznaczyć literał szesnastkowy, prefiks &b
lub &B
oznaczać literał binarny oraz prefiks &o
lub &O
oznaczać literał ósemkowy. Literały dziesiętne nie mają prefiksu.
Począwszy od języka Visual Basic 2017, można również użyć znaku podkreślenia , _
jako separatora cyfr, aby zwiększyć czytelność, jak pokazano w poniższym przykładzie.
Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
Począwszy od języka Visual Basic 15.5, można również użyć znaku podkreślenia (_
) jako separatora wiodącego między prefiksem a cyframi szesnastkowymi, binarnymi lub ósemkowymi. Na przykład:
Dim number As SByte = &H_F9
Aby użyć znaku podkreślenia jako separatora wiodącego, należy dodać następujący element do pliku projektu Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Wybieranie wersji języka Visual Basic.
Jeśli literał liczby całkowitej znajduje się poza zakresem SByte
(czyli jeśli jest mniejszy lub większy niż SByte.MinValue SByte.MaxValue, wystąpi błąd kompilacji. Gdy literał liczby całkowitej nie ma sufiksu, wywnioskowana jest liczba całkowita . Jeśli literał liczby całkowitej znajduje się poza zakresem Integer
typu, wywnioskowany jest długi . Oznacza to, że w poprzednich przykładach literały 0x9A
liczbowe i 0b10011010
są interpretowane jako 32-bitowe liczby całkowite ze znakiem o wartości 156, która przekracza SByte.MaxValuewartość . Aby pomyślnie skompilować kod podobny do tego, który przypisuje liczbę całkowitą inną niż dziesiętna do SByte
obiektu , możesz wykonać jedną z następujących czynności:
Wyłącz kontrole granic liczb całkowitych, kompilując je za pomocą przełącznika kompilatora
/removeintchecks
.Użyj znaku typu, aby jawnie zdefiniować wartość literału, którą chcesz przypisać do .
SByte
Poniższy przykład przypisuje wartość literałuShort
ujemnego do elementuSByte
. Należy pamiętać, że w przypadku liczb ujemnych należy ustawić bit o wysokiej kolejności słowa literału liczbowego. W naszym przykładzie jest to bit 15 wartości literałuShort
.Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
Porady dotyczące programowania
Zgodność ze środowiskaMI CLS. Typ
SByte
danych nie jest częścią specyfikacji języka wspólnego (CLS), dlatego kod zgodny ze specyfikacją CLS nie może używać składnika, który go używa.Poszerzenie. Typ
SByte
danych rozszerza się naShort
, ,Integer
,Long
,Decimal
,Single
iDouble
. Oznacza to, że można przekonwertowaćSByte
na dowolny z tych typów bez napotkania błędu System.OverflowException .Wpisz znaki.
SByte
nie ma znaku typu literału ani typu identyfikatora.Typ struktury. Odpowiedni typ w programie .NET Framework jest strukturą System.SByte .