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 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 .SByte Poniższy przykład przypisuje wartość literału Short ujemnego do elementu SByte. 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łu Short .

    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ę na Short, , Integer, Long, Decimal, Singlei Double. 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 .

Zobacz też