Compartir a través de


sbyte (Referencia de C#)

La palabra clave sbyte indica un tipo entero que almacena valores según el tamaño y el intervalo que se indican en la tabla siguiente.

Tipo

Intervalo

Size

Tipo de .NET Framework

sbyte

De -128 a 127

Entero de 8 bits con signo

SByte

Literales

Puede declarar e inicializar una variable sbyte de esta manera:

sbyte sByte1 = 127;

En la declaración anterior, el literal entero 127 se convierte implícitamente del tipo int al tipo sbyte. Si el literal entero supera el intervalo de valores del tipo sbyte, se producirá un error de compilación.

Debe utilizarse una conversión de tipos al llamar a métodos sobrecargados. Considere, por ejemplo, los dos métodos sobrecargados siguientes que utilizan parámetros de tipo sbyte e int:

public static void SampleMethod(int i) {}
public static void SampleMethod(sbyte b) {}

Si se utiliza la conversión explícita al tipo sbyte, se garantiza la llamada al tipo correcto; por ejemplo:

// Calling the method with the int parameter:
SampleMethod(5);
// Calling the method with the sbyte parameter:
SampleMethod((sbyte)5);

Conversiones

Existe una conversión implícita predefinida de sbyte a short, int, long, float, double o decimal.

No se pueden convertir implícitamente tipos numéricos no literales cuyo tamaño de almacenamiento sea superior a sbyte (vea Tabla de tipos enteros (Referencia de C#) para conocer los tamaños de almacenamiento de los tipos enteros). Considere, por ejemplo, las dos variables siguientes de tipo sbyte, x e y:

sbyte x = 10, y = 20;

La instrucción de asignación siguiente producirá un error de compilación, ya que la expresión aritmética del lado derecho del operador de asignación se evalúa de forma predeterminada como int.

sbyte z = x + y;   // Error: conversion from int to sbyte

Para corregir este problema, convierta explícitamente la expresión como en el ejemplo siguiente:

sbyte z = (sbyte)(x + y);   // OK: explicit conversion

Sin embargo, es posible utilizar las instrucciones siguientes, donde la variable de destino tiene un tamaño de almacenamiento igual o superior:

sbyte x = 10, y = 20;
int m = x + y;
long n = x + y;

Observe que no existe conversión implícita de tipos de punto flotante a sbyte. Por ejemplo, la instrucción siguiente generará un error de compilación, a menos que se utilice una conversión explícita:

sbyte x = 3.0;         // Error: no implicit conversion from double
sbyte y = (sbyte)3.0;  // OK: explicit conversion

Para obtener información acerca de las expresiones aritméticas con tipos de punto flotante y tipos enteros, consulte float (Referencia de C#) y double (Referencia de C#).

Para obtener más información acerca de reglas de conversión numéricas implícitas, consulte Tabla de conversiones numéricas implícitas (Referencia de C#).

Especificación del lenguaje C#

Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también

Referencia

Palabras clave de C#

Tabla de tipos enteros (Referencia de C#)

Tabla de tipos integrados (Referencia de C#)

Tabla de conversiones numéricas implícitas (Referencia de C#)

Tabla de conversiones numéricas explícitas (Referencia de C#)

SByte

Conceptos

Guía de programación de C#

Otros recursos

Referencia de C#