Tipo de dados SByte (Visual Basic)
Contém inteiros assinados de 8 bits (1 byte) que variam em valor de -128 a 127.
Observações
Use o SByte
tipo de dados para conter valores inteiros que não exigem a largura total dos dados ou Integer
mesmo a metade da largura dos dados do Short
. Em alguns casos, o Common Language Runtime pode ser capaz de agrupar suas SByte
variáveis e economizar o consumo de memória.
O valor padrão de SByte
é 0.
Atribuições literais
Você pode declarar e inicializar uma SByte
variável atribuindo-lhe um literal decimal, um literal hexadecimal, um literal octal ou (a partir do Visual Basic 2017) um literal binário.
No exemplo a seguir, inteiros iguais a -102 que são representados como literais decimais, hexadecimais e binários são atribuídos a SByte
valores. Este exemplo requer que você compile com a opção do /removeintchecks
compilador.
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
Nota
Você usa o prefixo &h
ou &H
para denotar um literal hexadecimal, o prefixo &b
ou &B
para denotar um literal binário e o prefixo &o
ou &O
para denotar um literal octal. Os literais decimais não têm prefixo.
A partir do Visual Basic 2017, você também pode usar o caractere de sublinhado, _
, como um separador de dígitos para melhorar a legibilidade, como mostra o exemplo a seguir.
Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
A partir do Visual Basic 15.5, você também pode usar o caractere de sublinhado (_
) como um separador à esquerda entre o prefixo e os dígitos hexadecimais, binários ou octais. Por exemplo:
Dim number As SByte = &H_F9
Para usar o caractere de sublinhado como um separador à esquerda, você deve adicionar o seguinte elemento ao seu arquivo de projeto do Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Para obter mais informações, consulte Selecione a versão da linguagem Visual Basic.
Se o literal inteiro estiver fora do intervalo de (isto é, se for menor SByte.MinValue ou maior que SByte.MaxValue, ocorrerá um erro de SByte
compilação. Quando um literal inteiro não tem sufixo, um inteiro é inferido. Se o literal inteiro estiver fora do intervalo do Integer
tipo, um Long é inferido. Isso significa que, nos exemplos anteriores, os literais numéricos 0x9A
e 0b10011010
são interpretados como inteiros assinados de 32 bits com um valor de 156, que excede SByte.MaxValue. Para compilar com êxito um código como este, que atribui um inteiro não decimal a um SByte
, você pode fazer o seguinte:
Desative as verificações de limites inteiros compilando com a opção do
/removeintchecks
compilador.Use um caractere de texto para definir explicitamente o valor literal que você deseja atribuir ao
SByte
. O exemplo a seguir atribui um valor literalShort
negativo a umSByte
arquivo . Observe que, para números negativos, o bit de ordem alta da palavra de ordem alta do literal numérico deve ser definido. No caso do nosso exemplo, este é o bit 15 do valor literalShort
.Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
Dicas de programação
Conformidade CLS. O
SByte
tipo de dados não faz parte da Common Language Specification (CLS), portanto, o código compatível com CLS não pode consumir um componente que o usa.Alargamento. O
SByte
tipo de dados é ampliado paraShort
,Integer
, ,Long
Decimal
,Single
eDouble
. Isso significa que você pode converterSByte
para qualquer um desses tipos sem encontrar um System.OverflowException erro.Digite caracteres.
SByte
não tem nenhum caractere de tipo literal ou caractere de tipo de identificador.Tipo de estrutura. O tipo correspondente no .NET Framework é a System.SByte estrutura.