C# orientado a objetos

Los records y la comparación por valor en C#

En esta lección vas a representar datos inmutables de forma concisa con records y a crear copias modificadas con la expresión with.

Introducción

El record es un tipo pensado para objetos que sirven sobre todo para contener datos. Con una sola línea de declaración, ya tiene constructor, propiedades de solo lectura y una salida bien formateada. Sobre todo, dos records se consideran iguales cuando los valores que contienen son idénticos.

La línea record User(string Name, string Role) crea un tipo con las dos propiedades Name y Role. La expresión original with { Role = "Lead" } crea una copia en la que solo cambia Role, mientras que original sigue con Developer. Al mostrarlo, el record presenta automáticamente su contenido con la forma User { Name = Ada, Role = Lead }.

Ejemplo de C# ejecutable

C#
Ejecutar código →
Program.cs
using System;

record User(string Name, string Role);

class Program
{
    static void Main()
    {
        var original = new User("Ada", "Developer");
        var promoted = original with { Role = "Lead" };
        Console.WriteLine(promoted);
    }
}
Resultado de la ejecución
User { Name = Ada, Role = Lead }

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos