CSharp Cheat sheet

Tu guía rápida para programar en C#

Records en C#

Los record en C# son tipos de referencia especiales diseñados para almacenar datos inmutables de forma concisa. Introducidos en C# 9, ofrecen comparaciones estructurales, una sintaxis compacta y soporte incorporado para con constructores, igualdad y desestructuración. Son ideales para modelar DTOs, resultados de operaciones y estados inmutables.

Definir un record

Puedes declarar un record de forma muy concisa con la sintaxis de posición.

public record Persona(string Nombre, int Edad);
    

Esto crea propiedades inmutables, un constructor, métodos de igualdad y ToString automáticamente.

Usar un record

Crear instancias es tan sencillo como llamar al constructor.

var persona1 = new Persona("Alice", 30);
Console.WriteLine(persona1);
// Salida: Persona { Nombre = Alice, Edad = 30 }
    

Los records se imprimen de forma legible automáticamente.

Comparación estructural

A diferencia de las clases, los records se comparan por valor.

var persona2 = new Persona("Alice", 30);
Console.WriteLine(persona1 == persona2); // True
    

Esto es útil para comparar contenido en lugar de referencias.

Con with expressions

Puedes crear copias inmutables con cambios.

var persona3 = persona1 with { Edad = 31 };
Console.WriteLine(persona3);
// Salida: Persona { Nombre = Alice, Edad = 31 }
    

Permite modificar propiedades sin alterar el objeto original.

Buenas Prácticas

Usa records para datos inmutables y DTOs. Evita lógica compleja en records. Aprovecha la comparación estructural para pruebas y validaciones. Usa with para cambios seguros. Considera records en jerarquías con inheritance solo si tiene sentido semántico.

Ver también

Documentación oficial de Microsoft

Ver más en Microsoft Docs