byte (Referencia de C#)
La palabra clave byte denota un tipo entero que almacena valores según se muestra en la tabla siguiente.
Tipo |
Intervalo |
Size |
Tipo de .NET Framework |
---|---|---|---|
byte |
De 0 a 255 |
Entero de 8 bits sin signo |
Literales
Las variables de tipo byte se pueden declarar e inicializar como en el siguiente ejemplo:
byte myByte = 255;
En la declaración anterior, el literal entero 255 se convierte implícitamente del tipo int al tipo byte. Si el literal entero supera el intervalo de valores del tipo byte, se producirá un error de compilación.
Conversiones
Hay una conversión implícita predefinida de byte a short, ushort, int, uint, longo, ulong, float, double o decimal.
No es posible convertir implícitamente a byte otros tipos numéricos no literales de mayor tamaño de almacenamiento. Para obtener más información acerca de los tamaños de almacenamiento de tipos enteros, vea Tabla de tipos enteros (Referencia de C#). Considere, por ejemplo, las dos variables siguientes de tipo byte, x e y:
byte 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.
// Error: conversion from int to byte:
byte z = x + y;
Para solucionar este problema, utilice una conversión explícita:
// OK: explicit conversion:
byte z = (byte)(x + y);
Sin embargo, es posible utilizar las instrucciones siguientes, donde la variable de destino tiene un tamaño de almacenamiento igual o superior:
int x = 10, y = 20;
int m = x + y;
long n = x + y;
Sin embargo, no existe conversión implícita de tipos de punto flotante a tipo byte. 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:
byte x = 3.0;
// OK: explicit conversion:
byte y = (byte)3.0;
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 byte e int:
public static void SampleMethod(int i) {}
public static void SampleMethod(byte b) {}
Si se utiliza la conversión explícita al tipo byte, se garantiza la llamada al tipo correcto; por ejemplo:
// Calling the method with the int parameter:
SampleMethod(5);
// Calling the method with the byte parameter:
SampleMethod((byte)5);
Para obtener más información sobre expresiones aritméticas con tipos de punto flotante y tipos enteros, 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, 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
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#)