DEV Community

Cover image for Aprimorando a Robustez do Código com Membros Obrigatórios no C# 11
Lincoln Quinan Junior
Lincoln Quinan Junior

Posted on

Aprimorando a Robustez do Código com Membros Obrigatórios no C# 11

Continuando nossa série sobre as novas funcionalidades do C# 11, vamos explorar um recurso projetado para melhorar a integridade e a robustez dos tipos em nossos programas: os membros obrigatórios. Com essa adição, o C# 11 torna possível definir propriedades e campos em classes e structs que devem ser obrigatoriamente fornecidos durante a criação de uma instância, garantindo assim que os objetos sejam sempre construídos em um estado válido.

O Que São Membros Obrigatórios?

Membros obrigatórios são uma nova maneira de garantir que determinadas propriedades ou campos de uma classe ou struct sejam fornecidos antes que uma instância seja considerada válida. Esse recurso ajuda a evitar erros comuns em tempo de execução relacionados a valores nulos ou não inicializados, promovendo padrões de codificação mais seguros.

Exemplo 1: Definindo uma Propriedade Obrigatória

public class Produto
{
    public required string Nome { get; set; }
    public decimal Preco { get; set; }
}
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, Produto tem uma propriedade Nome marcada como required, indicando que cada instância de Produto deve ter um Nome válido fornecido no momento da criação.

Exemplo 2: Construção de Objetos com Membros Obrigatórios

var produto = new Produto { Nome = "Caderno", Preco = 7.99m };
Enter fullscreen mode Exit fullscreen mode

Ao criar uma instância de Produto, é necessário fornecer um valor para a propriedade Nome, de acordo com a regra definida anteriormente. A tentativa de compilar o código sem fornecer Nome resultará em um erro.

Exemplo 3: Uso com Construtores

public class Contato
{
    public required string Email { get; set; }
    public Contato(string email) => Email = email;
}
Enter fullscreen mode Exit fullscreen mode

Mesmo quando um construtor é usado para inicializar a instância, as propriedades marcadas como required devem ser atribuídas, garantindo a consistência do objeto desde sua criação.

Exemplo 4: Structs com Membros Obrigatórios

public struct Configuracao
{
    public required string Chave { get; set; }
    public string Valor { get; set; }
}
Enter fullscreen mode Exit fullscreen mode

Os membros obrigatórios também são aplicáveis a structs, garantindo que instâncias de structs sejam inicializadas com dados essenciais, fortalecendo a tipagem e a segurança de dados em toda a aplicação.

Conclusão

Os membros obrigatórios introduzidos no C# 11 representam um passo significativo para a construção de softwares mais robustos e seguros, minimizando erros comuns relacionados à inicialização inadequada de objetos. Ao forçar que certas informações sejam fornecidas para a construção de instâncias, os desenvolvedores podem escrever códigos mais claros e expressivos, com garantias de integridade de dados desde o início.

Essa funcionalidade se alinha com as tendências modernas de programação que enfatizam a segurança de tipos e a prevenção de erros, oferecendo mais uma ferramenta valiosa para o desenvolvimento de aplicações confiáveis e de alta qualidade em C#.

Fique conosco na série para descobrir mais sobre como as novas funcionalidades do C# 11 podem enriquecer seus projetos e levar suas habilidades de codificação para o próximo nível.

Top comments (0)