• Você pode usar cláusulas de guarda em seus métodos para evitar exceções de tempo de execução, lidando com exceções de referência nula.
  • Você pode usar cláusulas de guarda para validar dados de entrada e aplicar a integridade dos dados, processando apenas entradas válidas.
  • Você pode usar cláusulas de guarda para definir pré -condições para seus métodos e propriedades, aprimorando a legibilidade e a manutenção do seu código.

Examinaremos cada um desses aspectos das cláusulas de guarda usando exemplos de código nas seções a seguir.

Use uma cláusula de guarda para evitar exceções de referência nula em C#

Exceções de referência nula são frequentemente encontradas nos aplicativos quando você usa uma referência de objeto que não foi inicializada. Nesta seção, examinaremos como podemos usar uma cláusula de guarda para impedir que essas exceções sejam jogadas em tempo de execução. O snippet de código a seguir mostra como você pode verificar se o parâmetro de um método é nulo e lançar uma argumentação, impedindo que uma exceção de referência nula seja jogada no tempo de execução e permitindo que o método seja concluído graciosamente.


public void CheckIfNull(object obj)
{
    if (obj is null)
    {
        throw new ArgumentNullException(nameof(obj), "Method parameter cannot be null.");
    }
    //Other code
}

Use uma cláusula de guarda para aplicar regras de validação de entrada em C#

A validação de entrada permite manter a integridade dos dados, aplicando regras e restrições de validação em seu aplicativo. Você pode implementar cláusulas de proteção no código -fonte do seu aplicativo para permitir que apenas dados válidos sejam processados ​​pelo seu aplicativo.

O exemplo de código a seguir mostra como você pode usar uma cláusula de guarda em C# para evitar a entrada inválida. Observe como uma exceção é lançada se a sequência de entrada estiver nula ou vazia.


public void CheckIfNullOrEmpty(string str)
{
    if(!string.IsNullOrEmpty(str))
    {
        throw new ArgumentException("Invalid data: The string passed in the method argument cannot be empty or null");
    }
    //Other code
}

Use uma cláusula de guarda para aprimorar a legibilidade do código e a manutençãoNabilidade em C#

As cláusulas de guarda ajudam você a escrever código sustentável e legível, centralizando as regras de validação do seu aplicativo. Eles fornecem uma maneira elegante de evitar comportamentos inesperados no código do seu aplicativo, tornando -o consistente, organizado e fácil de manter.

Vamos entender isso com um exemplo de código. No projeto de aplicativo do console que criamos anteriormente, crie uma nova classe chamada autor e insira o código a seguir.


class Author
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address { get; set; }
    public string Email { get; set; }
}

O snippet de código a seguir ilustra como você pode aproveitar o construtor da classe do autor para validar a entrada.


 public Author(string firstName, string lastName, string address, string email)
 {
     if (string.IsNullOrEmpty(firstName))
     {
         throw new ArgumentException("First name cannot be null or empty", nameof(firstName));
     }
     if (string.IsNullOrEmpty(lastName))
     {
         throw new ArgumentException("Last name cannot be null or empty", nameof(lastName));
     }
     if (string.IsNullOrEmpty(address))
     {
         throw new ArgumentException("Address cannot be null or empty", nameof(address));
     }
     if (string.IsNullOrEmpty(email))
     {
         throw new ArgumentException("Email cannot be null or empty", nameof(email));
     }
 }

Como você pode ver, o trecho de código anterior é bastante detalhado. Podemos torná -lo muito mais conciso e legível usando cláusulas de guarda. Observe que o código a seguir pode substituir todas as declarações IF usadas no construtor da classe do autor acima.