Tipo de dados SByte (Visual Basic)
Armazena inteiros de 8 bits (1 byte) com sinal que variam de -128 a 127.
Comentários
Use o tipo de dados SByte
para conter valores inteiros que não exigem a largura completa dos dados de Integer
ou mesmo a metade da largura de dados de Short
. Em alguns casos, o Common Language Runtime pode ser capaz de agrupar as variáveis SByte
e economizar o consumo de memória.
O valor padrão de SByte
é 0.
Atribuições literais
Você pode declarar e inicializar uma variável SByte
atribuindo a ela um literal decimal, hexadecimal, octal ou (a partir do Visual Basic 2017) binário.
No exemplo a seguir, inteiros iguais a -102 representados como literais decimais, hexadecimais e binários são atribuídos a valores SByte
. Este exemplo requer que você compile com a opção do compilador /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
Observação
Use o prefixo &h
ou &H
para indicar um literal hexadecimal, &b
ou &B
para indicar um literal binário e &o
ou &O
para indicar um literal octal. Literais decimais não têm nenhum prefixo.
A partir do Visual Basic 2017, você também pode usar o caractere de sublinhado, _
, como separador de dígitos para melhorar a legibilidade, como no 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 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 separador à esquerda, você deve adicionar o seguinte elemento ao arquivo de projeto do Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Para obter mais informações, consulte Selecionar a versão da linguagem Visual Basic.
Se o literal inteiro estiver fora do intervalo de SByte
(ou seja, se for menor que SByte.MinValue ou maior que SByte.MaxValue, ocorrerá um erro de compilação. Quando um literal inteiro não tem sufixo, um inteiro é inferido. Se o literal inteiro estiver fora do intervalo do tipo Integer
, um Long será inferido. Isso significa que, nos exemplos anteriores, os literais numéricos 0x9A
e 0b10011010
são interpretados como inteiros com sinal 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 qualquer um dos seguintes procedimentos:
Desabilite verificações de limites de inteiro compilando com o comutador do compilador
/removeintchecks
.Use um caractere de tipo para definir explicitamente o valor literal que você deseja atribuir ao
SByte
. O exemplo a seguir atribui um valor literal negativoShort
a umSByte
. Observe que, para números negativos, o bit de ordem superior da palavra de ordem superior 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
Compatível com CLS. O tipo de dados
SByte
não faz parte da CLS (Common Language Specification), portanto, o código compatível com CLS não pode consumir um componente que o utilize.Ampliação. O tipo de dados
SByte
é ampliado paraShort
,Integer
,Long
,Decimal
,Single
eDouble
. Isso significa que você pode converterSByte
em qualquer um desses tipos sem a ocorrência de um erro System.OverflowException.Caracteres de tipo.
SByte
não tem nenhum caractere de tipo literal nem caractere de identificação de tipo.Tipo do Framework. O tipo correspondente no .NET Framework é a estrutura System.SByte.