Aprimore seu Código no C# 13 com Records e Classes Parciais

Domine as novidades do C# 13O que é C# 13 e por que aprender em 90 minutosO que é C# 13 e por que aprender em 90 minutosExplore as inovações do C# 13 e melhore a legibilidade do seu código. Este tutorial prático de 90 minutos oferece dicas essenciais para desenvolvedores .NET. em 90 min; exemplos práticos elevam legibilidade e desempenho do seu código. Nesta lição, vamos explorar como records evoluíram para fornecer mais flexibilidade e como classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. parciais oferecem diferentes perspectivas de organização do seu projeto.

Visão Geral🔗

Os records foram introduzidos para simplificar a criação de tipos imutáveis e aliviar o uso de estruturasOtimizações para desempenho: dicas de uso correto de tipos em C# 13Otimizações para desempenho: dicas de uso correto de tipos em C# 13Descubra como otimizar seu código em C# 13 com técnicas práticas. Aprenda a escolher entre struct, class, Span<T> e ValueTask para melhor desempenho. de dados focadas em “valor” no C#. Já as classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. parciais existem nas versões anteriores da linguagem e permitem dividir a definição de uma mesma classe em vários arquivos, facilitando a manutenção e o trabalho em equipe.

A cada lançamento do C#, records e classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. parciais recebem incrementos sutis, mas que trazem benefícios para a organização e a legibilidade do seu código. No C# 13O que é C# 13 e por que aprender em 90 minutosO que é C# 13 e por que aprender em 90 minutosExplore as inovações do C# 13 e melhore a legibilidade do seu código. Este tutorial prático de 90 minutos oferece dicas essenciais para desenvolvedores .NET., a proposta é refinar ainda mais esses dois recursos para que o desenvolvedor possa manter o foco no que realmente importa: fazer um código mais simples, direto e de fácil manutenção.

Records: Mais Flexibilidade e Evolução🔗

Relembrando o Conceito

Um record em C# pode ser considerado um “objeto imutável especializado” que se comporta como um tipo de valor. Ao contrário de classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. convencionais, records por padrão:

  • São imutáveis: as propriedades normalmente são inicializadas no construtor.
  • Têm comparação por valor: dois records com valores de propriedades iguais são considerados equivalentes.
public record Cliente(string Nome, string Email);

No exemplo acima, Cliente é um record simples. Se criarmos dois objetos com as mesmas propriedades, eles serão considerados iguais.

Novas Possibilidades no C# 13

Com o tempo, os records ganharam derivações que ampliam seu uso (como record classBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. e record structOtimizações para desempenho: dicas de uso correto de tipos em C# 13Otimizações para desempenho: dicas de uso correto de tipos em C# 13Descubra como otimizar seu código em C# 13 com técnicas práticas. Aprenda a escolher entre struct, class, Span<T> e ValueTask para melhor desempenho.). No C# 13O que é C# 13 e por que aprender em 90 minutosO que é C# 13 e por que aprender em 90 minutosExplore as inovações do C# 13 e melhore a legibilidade do seu código. Este tutorial prático de 90 minutos oferece dicas essenciais para desenvolvedores .NET., essas possibilidades foram consolidadas, permitindo maior flexibilidade ao:

1. Definir record structsOtimizações para desempenho: dicas de uso correto de tipos em C# 13Otimizações para desempenho: dicas de uso correto de tipos em C# 13Descubra como otimizar seu código em C# 13 com técnicas práticas. Aprenda a escolher entre struct, class, Span<T> e ValueTask para melhor desempenho. ou record classes: você decide se deseja um tipo com características de classe ou de structOtimizações para desempenho: dicas de uso correto de tipos em C# 13Otimizações para desempenho: dicas de uso correto de tipos em C# 13Descubra como otimizar seu código em C# 13 com técnicas práticas. Aprenda a escolher entre struct, class, Span<T> e ValueTask para melhor desempenho., mantendo o match automático por valor.

2. Aplicar partial para records: agora é possível dividir a declaração de um record em vários arquivos, de forma similar às classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. parciais.

Considere o seguinte exemplo de record parcial:

// Arquivo: ClienteParte1.cs
public partial record Cliente(int Id, string Nome);
// Arquivo: ClienteParte2.cs
public partial record Cliente
{
    public string? Observacao { get; init; }
    public void Imprimir()
    {
        Console.WriteLine($"ID: {Id}, Nome: {Nome}, Observação: {Observacao}");
    }
}

O que mudou: a junção sobra para o compilador do C# 13O que é C# 13 e por que aprender em 90 minutosO que é C# 13 e por que aprender em 90 minutosExplore as inovações do C# 13 e melhore a legibilidade do seu código. Este tutorial prático de 90 minutos oferece dicas essenciais para desenvolvedores .NET., que agrupa todas as partes do record em tempo de compilação, permitindo uma organização mais sustentável do código - especialmente em projetos grandes.

Classes Parciais: Mantendo Organização e Lógica Separada🔗

Motivação para o Uso de Classes Parciais

O uso de classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. parciais permite separar a lógica de uma classe em múltiplos arquivos. Isso é extremamente útil em cenários como:

  • Geração automática de código por ferramentas (GUI designers, scaffolding, etc.).
  • Separação de responsabilidades: métodos específicos em arquivos distintos evitam poluição do arquivo principal.
  • Colaboração em equipe: diferentes desenvolvedores podem trabalhar em diferentes partes de uma mesma classe sem conflitos frequentes de merge.
// Arquivo: PedidosParte1.cs
public partial class Pedidos
{
    public int PedidoId { get; set; }
    public string? Cliente { get; set; }
}
// Arquivo: PedidosParte2.cs
public partial class Pedidos
{
    public void ExibirPedido()
    {
        Console.WriteLine($"Pedido: {PedidoId}, Cliente: {Cliente}");
    }
}

Impacto no C# 13

A principal diferença para o C# 13O que é C# 13 e por que aprender em 90 minutosO que é C# 13 e por que aprender em 90 minutosExplore as inovações do C# 13 e melhore a legibilidade do seu código. Este tutorial prático de 90 minutos oferece dicas essenciais para desenvolvedores .NET. é a forma refinada de trabalhar com acessibilidade e métodos. Há mais liberdade para dividir partes metódicas e members que antes poderiam causar confusão com geradores de códigoEntendendo o compilador Roslyn no C# 13Entendendo o compilador Roslyn no C# 13Descubra como o compilador Roslyn transforma o desenvolvimento em C# 13, oferecendo transparência, performance e extensibilidade para um código intuitivo. e anotações. Na prática, você continua escrevendo classes parciais da mesma forma, mas ganha melhor suporte da linguagem e do compilador.

Boas Práticas e Dicas🔗

Aproveitar melhorias em records e classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. parciais depende de como você organiza seu projeto. Algumas dicas:

DicaBenefício
Use partial com moderaçãoMantém clareza de onde os membros estão localizados
Combine records em cenários de DDD (Domain-Driven Design)Favorece a manutenção de entidades importantes no domínio
Forneça nomenclatura clara nos arquivosDiferenciar arquivos (ex: Usuario_ParteAutenticacao.cs) evita confusão
Evite misturar partial class e partial record no mesmo tipoMantenha cada conceito em seu devido lugar

Exercício Rápido🔗

1. Crie um record parcial que represente dados de um produto no seu sistema, dividindo em dois arquivos:

  • Na primeira parte, defina as propriedades básicas do produto.
  • Na segunda, implemente um método para imprimir os detalhes do produto.

2. Verifique como o compilador agrupa as duas partes e execute seu programa. Observe se o resultado é o esperado.

3. Refatore uma classe existente do seu projeto em duas partes usando partial classBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. e identifique se obteve melhorias de organização.

Conclusão🔗

Ao explorar as melhorias de records e classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. parciais no C# 13, percebemos que a linguagem está cada vez mais orientada a tornar o código simples e robusto. Separar responsabilidades e aproveitar o melhor de entidades imutáveis eleva a mantenibilidade, e as novidades do C# 13O que é C# 13 e por que aprender em 90 minutosO que é C# 13 e por que aprender em 90 minutosExplore as inovações do C# 13 e melhore a legibilidade do seu código. Este tutorial prático de 90 minutos oferece dicas essenciais para desenvolvedores .NET. reforçam ainda mais esse conceito.

Lembre-se: o verdadeiro poder está na combinação de recursos. Usar records, structsOtimizações para desempenho: dicas de uso correto de tipos em C# 13Otimizações para desempenho: dicas de uso correto de tipos em C# 13Descubra como otimizar seu código em C# 13 com técnicas práticas. Aprenda a escolher entre struct, class, Span<T> e ValueTask para melhor desempenho., e classesBoas práticas de performance e memória para jogos em C# 13Boas práticas de performance e memória para jogos em C# 13Descubra técnicas para otimizar desempenho e uso de memória em jogos com C# 13, utilizando structs, pooling e melhores práticas do GC. parciais de forma consciente permite que você crie aplicações mais coesas em menos tempo. Continue explorando e adapte essas dicas ao seu fluxo de trabalho para atingir eficiência máxima no desenvolvimento.

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

  • Documentação Oficial Microsoft sobre C# – oferece uma base técnica e detalhada, essencial para compreender as melhorias de records e classes parciais no C# 13: docs.microsoft.com/pt-br/dotnet/csharp/

Compartilhar artigo

Artigos Relacionados