Тип данных SByte (Visual Basic)
Содержит 8-разрядные (1-байтовые) целые числа, которые варьируются в значении от -128 до 127.
Замечания
SByte
Используйте тип данных, чтобы содержать целые значения, которые не требуют полной ширины Integer
данных или даже половины ширины Short
данных. В некоторых случаях среда CLR может тесно упаковать SByte
переменные и сохранить потребление памяти.
Значение по умолчанию для типа SByte
— 0.
Литеральные назначения
Можно объявить и инициализировать SByte
переменную, назначив ему десятичный литерал, шестнадцатеричный литерал, восьмеричный литерал или (начиная с Visual Basic 2017) двоичный литерал.
В следующем примере целые числа равны -102, представленные как десятичные, шестнадцатеричные и двоичные литералы, присваиваются SByte
значениям. В этом примере требуется компиляция с помощью переключателя компилятора /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
Примечание.
Вы используете префикс или обозначает шестнадцатеричный литерал, префикс &h
или &H
&B
для обозначения двоичного литерала, а также префикса &b
&o
или &O
для обозначения восьмеричного литерала. У десятичных литералов префиксов нет.
Начиная с Visual Basic 2017, вы также можете использовать символ подчеркивания, _
как разделитель цифр для повышения удобочитаемости, как показано в следующем примере.
Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
Начиная с Visual Basic 15.5, можно также использовать символ подчеркивания (_
) в качестве ведущего разделителя между префиксом и шестнадцатеричными, двоичными или восьмизначными цифрами. Например:
Dim number As SByte = &H_F9
Чтобы использовать символ подчеркивания в качестве ведущего разделителя, необходимо добавить следующий элемент в файл проекта Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Дополнительные сведения см. в разделе "Выбор версии языка Visual Basic".
Если целочисленный литерал выходит за пределы диапазона SByte
(то есть, если он меньше SByte.MinValue или больше SByte.MaxValue), возникает ошибка компиляции. Если целочисленный литерал не имеет суффикса, целое число выводится. Если целочисленный литерал находится за пределами Integer
диапазона типа, выводится целочисленный литерал. Это означает, что в предыдущих примерах числовые литералы 0x9A
и 0b10011010
интерпретируются как 32-разрядные целые числа со знаком со значением 156, превышающее SByte.MaxValueзначение. Чтобы успешно скомпилировать код, который назначает целое число SByte
, отличное от десятичного целого числа, можно выполнить одно из следующих действий:
Отключите целые границы, скомпилируя с помощью переключателя компилятора
/removeintchecks
.Используйте символ типа, чтобы явно определить литеральное значение, которое требуется назначить
SByte
. В следующем примере присваивается отрицательное литеральноеShort
значениеSByte
. Обратите внимание, что для отрицательных чисел необходимо задать бит высокого порядка слова числового литерала. В нашем примере это бит 15 литеральногоShort
значения.Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
Советы по программированию
Соответствие CLS.
SByte
Тип данных не является частью спецификации CLS, поэтому код, совместимый с CLS, не может использовать компонент, использующий его.Расширение. Тип
SByte
данных расширяется доShort
,Integer
,Long
,Decimal
иSingle
Double
. Это означает, что вы можете преобразоватьSByte
в любой из этих типов без возникновения System.OverflowException ошибки.Тип символов.
SByte
не имеет символа литерального типа или символа типа идентификатора.Тип платформы. В .NET Framework данный тип соответствует структуре System.SByte.