Tipo de datos SByte (Visual Basic)
Contiene enteros de 8 bits (1 byte) con signo que oscilan entre -128 y 127.
Comentarios
Use el tipo de datos para contener valores enteros que no requieren el ancho de datos completo de o incluso el SByte ancho medio de datos de Integer Short . En algunos casos, Common Language Runtime podría empaquetar las variables de forma estrecha y SByte ahorrar consumo de memoria.
El valor predeterminado de SByte es 0.
Asignaciones literales
Puede declarar e inicializar una variable asignándose un literal decimal, un literal hexadecimal, un literal octal o (a partir SByte de Visual Basic 2017) un literal binario.
En el ejemplo siguiente, los enteros iguales a -102 que se representan como literales decimales, hexadecimales y binarios se asignan a SByte valores. En este ejemplo es necesario compilar con el modificador /removeintchecks del 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
Use el prefijo o para denotar un literal hexadecimal, el prefijo o para denotar un literal binario, y el prefijo o para &h &H denotar un literal &b &B &o &O octal. Los literales decimales no tienen prefijo.
A partir Visual Basic 2017, también puede usar el carácter de subrayado, , como separador de dígitos para mejorar la legibilidad, como se muestra en el _ ejemplo siguiente.
Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
A partir Visual Basic 15.5, también puede usar el carácter de subrayado ( ) como separador inicial entre el prefijo y los dígitos hexadecimales, binarios o _ octales. Por ejemplo:
Dim number As SByte = &H_F9
Para usar el carácter de subrayado como separador inicial, debe agregar el elemento siguiente al archivo del proyecto de Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Para obtener más información, vea Select the Visual Basic language version (Seleccionar Visual Basic versión de idioma).
Si el literal entero está fuera del intervalo de SByte (es decir, si es inferior a SByte.MinValue o mayor que SByte.MaxValue, se produce un error de compilación. Cuando un literal entero no tiene sufijo, se deduce un entero. Si el literal entero está fuera del intervalo del Integer tipo , se deduce long. Esto significa que, en los ejemplos anteriores, los literales numéricos y se interpretan como enteros de 32 bits con signo con un valor de 0x9A 0b10011010 156, que supera SByte.MaxValue . Para compilar correctamente código como este que asigna un entero no decimal a un , puede SByte realizar una de las siguientes acciones:
Deshabilite las comprobaciones de límites enteros mediante la compilación con el
/removeintchecksmodificador del compilador.Use un carácter de tipo para definir explícitamente el valor literal que desea asignar a
SByte. En el ejemplo siguiente se asigna un valor literalShortnegativo aSByte. Tenga en cuenta que, para los números negativos, se debe establecer el bit de orden superior de la palabra de orden superior del literal numérico. En el caso de nuestro ejemplo, es el bit 15 del valorShortliteral.Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
sugerencias de programación
Conformidad con CLS. El tipo de datos no forma parte del Common Language Specification (CLS), por lo que el código conforme a CLS no puede
SByteconsumir un componente que lo use.Ampliación. El
SBytetipo de datos se amplía a , , , , yShortIntegerLongDecimalSingleDouble. Esto significa que puede convertirSBytea cualquiera de estos tipos sin encontrar un System.OverflowException error.Caracteres de tipo.
SByteno tiene ningún carácter de tipo literal ni carácter de tipo identificador.Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.SByte.