DEV Community

Juarez Júnior for Develop4Us

Posted on • Edited on

Dica C#: Required Members

Vamos falar sobre Required Members, introduzidos no C# 11, que permitem declarar propriedades que devem ser obrigatoriamente inicializadas, garantindo que objetos criados estejam sempre em um estado válido. Veja o exemplo no código abaixo.

public class Produto
{
    public required string Nome { get; set; }
    public required decimal Preco { get; set; }
}

public class Program
{
    public static void Main()
    {
        Produto produto = new Produto
        {
            Nome = "Caneta",
            // Vai gerar um erro ao compilar
            //Preco = 2.99m
        };

        Console.WriteLine($"Produto: {produto.Nome}, Preço: {produto.Preco}");
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação:

Os Required Members permitem que você marque certas propriedades de uma classe como obrigatórias, forçando que elas sejam inicializadas no momento da criação do objeto. Isso é muito útil para evitar que objetos sejam criados sem ter todas as informações necessárias, o que pode gerar inconsistências ou erros em tempo de execução.

No exemplo acima, temos uma classe Produto com propriedades Nome e Preco, e ambas são obrigatórias. Se um objeto Produto for instanciado sem inicializar essas propriedades, o compilador acusará um erro, garantindo que o objeto sempre tenha os dados completos desde o início.

Código fonte: GitHub

Espero que essa dica ajude você a usar Required Members para garantir a integridade dos objetos criados em seus projetos! Até a próxima.

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay