Compartir a través de


short (Referencia de C#)

La palabra clave short denota un tipo de datos integral 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

short

-32.768 a 32.767

Entero de 16 bits con signo

System.Int16

Literales

Las variables de tipo short se pueden declarar e inicializar como en el siguiente ejemplo:

short x = 32767;

En la declaración anterior, el literal entero 32767 se convierte implícitamente del tipo int al tipo short. Si el literal entero no cabe en el espacio de almacenamiento reservado para un tipo short, se produce 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 short e int:

public static void SampleMethod(int i) {}
public static void SampleMethod(short s) {}

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

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

Conversiones

Existe una conversión implícita predefinida de short a 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 short (vea Tabla de tipos enteros (Referencia de C#) para conocer los tamaños de almacenamiento de los tipos integrales). Considere, por ejemplo, las dos variables siguientes de tipo short, x e y:

short x = 5, y = 12;

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 como int de forma predeterminada.

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

Para solucionar este problema, utilice una conversión explícita:

short z = (short)(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:

int m = x + y;
long n = x + y;

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

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

Para obtener más información sobre expresiones aritméticas con tipos de punto flotante y tipos integrales, vea float y double.

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

Especificación del lenguaje C#

Para obtener más información, vea 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#)

Int16

Conceptos

Guía de programación de C#

Otros recursos

Referencia de C#