C# orientado a objetos

Records e comparação por valor em C#

Nesta lição, você vai usar records para representar dados imutáveis de forma curta e criar cópias modificadas com a expressão with.

Introdução

O record é um tipo pensado para objetos que servem principalmente para guardar dados. Com uma única linha de declaração, ele já vem com construtor, propriedades somente leitura e uma impressão bem formatada. E, principalmente, dois records são considerados iguais quando os valores dentro deles são iguais.

A linha record User(string Name, string Role) cria um tipo com as propriedades Name e Role. A expressão original with { Role = "Lead" } cria uma cópia mudando apenas Role, enquanto original continua com Developer. Ao ser impresso, o record mostra o conteúdo no formato User { Name = Ada, Role = Lead }.

Exemplo de C# executável

C#
Rodar 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 da execução
User { Name = Ada, Role = Lead }

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios