Cargando...

Tipos de datos básicos en C#

Tipos de datos básicos en C#: numéricos, de texto, lógicos, orientados a objetos y anulables.

En C#, los datos se almacenan utilizando distintos tipos, y cada tipo determina el uso de memoria y las operaciones que se pueden realizar. Estos tipos influyen directamente en el comportamiento del programa. En este artículo analizaremos los tipos de datos numéricos, textuales, lógicos, dinámicos y nullable con ejemplos prácticos.

Elegir correctamente el tipo de dato es una parte fundamental del aprendizaje de C#. Una selección adecuada mejora el rendimiento, optimiza el uso de memoria y reduce la posibilidad de errores. Comprender bien los tipos de datos básicos permite construir aplicaciones más sólidas y confiables.


Tipos numéricos

Se usan para enteros y números decimales. Para cálculos financieros se recomienda decimal.

TipoDescripciónEjemploMemoria
intEntero (−2B - +2B)424 bytes
longEnteros más grandes1000000008 bytes
shortEnteros pequeños1202 bytes
byte0 - 255 positivo2001 byte
doubleDecimal (doble precisión)3.148 bytes
floatDecimal (simple precisión)2.5f4 bytes
decimalDecimal para finanzas19.99m16 bytes

int edad = 25;
double pi = 3.14159;
decimal precio = 19.99m;

Console.WriteLine(edad);
Console.WriteLine(pi);
Console.WriteLine(precio);

Nota: En cálculos financieros, se recomienda usar decimal en lugar de double, ya que evita errores de redondeo y ofrece una mayor precisión.


Tipos textuales

char almacena un solo carácter, mientras que string almacena una cadena de caracteres.


char inicial = 'M';
string mensaje = "Hola";

Console.WriteLine(inicial);
Console.WriteLine(mensaje);

Tipo lógico

bool solo puede ser true o false. Se usa en condiciones y comparaciones.


bool esEstudiante = true;
bool esGraduado = false;

Console.WriteLine(esEstudiante);
Console.WriteLine(esGraduado);

Tipos objeto y dinámicos

object, var y dynamic permiten un uso flexible.


object datos = 42;
var texto = "Hola";
dynamic variable = 5;
variable = "Ahora es un string";

Console.WriteLine(datos);
Console.WriteLine(texto);
Console.WriteLine(variable);

Tipos anulables

Los tipos de valor (int, double, bool) no pueden ser null por defecto. Con ? se hacen anulables.


int? nota = null;

if (nota == null)
    Console.WriteLine("Nota no ingresada.");
else
    Console.WriteLine($"Nota: {nota}");

¿Cuándo Usar Cada Tipo de Dato?


Asignaciones entre Tipos de Datos y Conversiones

En C#, las variables de distintos tipos de datos no siempre pueden asignarse directamente entre sí. Cuando los tipos no son compatibles, se produce un error de compilación.

Asignaciones Incorrectas


int numero = 10;
string texto = numero; // ERROR

bool estado = true;
int valor = estado;    // ERROR

En los ejemplos anteriores, las asignaciones fallan porque los tipos de datos no son compatibles.

Error de conversión de tipos en C# en Visual Studio

En la imagen superior, Visual Studio detecta de inmediato las asignaciones incorrectas entre tipos de datos incompatibles. En el ejemplo se intenta asignar valores entre tipos como bool e int, que no son compatibles de forma directa. El editor resalta el problema con un subrayado rojo y muestra un error de compilación como CS0029.

Conversiones Implícitas


int pequeno = 5;
double grande = pequeno; // Válido

Los tipos numéricos más pequeños pueden convertirse automáticamente en tipos numéricos más grandes.

Conversiones Explícitas


double pi = 3.14;
int entero = (int)pi; // 3

Las conversiones que pueden provocar pérdida de datos o precisión requieren una conversión explícita.


Resumen