ushort (Referencia de C#)

Actualización: noviembre 2007

La palabra clave ushort indica 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

Tamaño

Tipo de .NET Framework

ushort

0 a 65.535

Entero de 16 bits sin signo

System.UInt16

Literales

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

ushort myShort = 65535;

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

Para llamar a métodos sobrecargados, debe utilizarse una conversión explícita de tipos. Considere, por ejemplo, los dos métodos sobrecargados siguientes que utilizan parámetros de tipo ushort e int:

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

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

// Calls the method with the int parameter:
SampleMethod(5);
// Calls the method with the ushort parameter:
SampleMethod((ushort)5);  

Conversiones

Existe una conversión implícita predefinida de ushort a int, uint, long, ulong, float, double o decimal.

Existe una conversión implícita predefinida de byte o char a ushort. En cualquier otro caso, se debe utilizar una conversión explícita. Considere, por ejemplo, las dos variables siguientes de tipo ushort, x e y:

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

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

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

ushort z = (ushort)(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;

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

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

Para obtener información acerca de las expresiones aritméticas con tipos de punto flotante y tipos integrales, vea float y double.

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, vea las secciones siguientes de Especificación del lenguaje C#.

  • 1.3 Tipos y variables

  • 4.1.5 Tipos integrales

Vea también

Conceptos

Guía de programación de C#

Referencia

Palabras clave de C#

Tabla de tipos integrales (Guía de programación 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#)

UInt16

Otros recursos

Referencia de C#