Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 Shortdanych . 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.MinValueSByte.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 SByteobiektu , 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 .
SBytePoniższy przykład przypisuje wartość literałuShortujemnego 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
SBytedanych 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
SBytedanych rozszerza się naShort, ,Integer,Long,Decimal,SingleiDouble. Oznacza to, że można przekonwertowaćSBytena dowolny z tych typów bez napotkania błędu System.OverflowException .Wpisz znaki.
SBytenie ma znaku typu literału ani typu identyfikatora.Typ struktury. Odpowiedni typ w programie .NET Framework jest strukturą System.SByte .